用户主目录: /root,/home/username
用户可执行程序目录: /bin, /usr/bin, /usr/local/bin
系统可执行程序: /sbin, /usr/sbin, /usr/local/sbin
挂载点: /media, /mnt
常用的配置文件目录: /etc
临时文件目录: /tmp
内核及引导目录: /boot
服务器目录: /var
系统信息目录: /proc, /sys
共享库目录: /lib, /usr/lib, /usr/local/lib
用户可执行程序目录: /bin, /usr/bin, /usr/local/bin
系统可执行程序: /sbin, /usr/sbin, /usr/local/sbin
挂载点: /media, /mnt
常用的配置文件目录: /etc
临时文件目录: /tmp
内核及引导目录: /boot
服务器目录: /var
系统信息目录: /proc, /sys
共享库目录: /lib, /usr/lib, /usr/local/lib
谁告诉我用哪个用户登陆,主机名字是什么,现在在哪个目录?
user: root 主机名:rhel5 目录:/root
cd 命令 是改变用户所在目录的命令
我现在所在的是什么目录?
根目录
如果我想切换会我的家目录有什么方法?
总结下
cd 回当前用户家目录
cd ~ 也是回当前用户家目录
cd - 回上一次所在的目录
cd 回当前用户家目录
cd ~ 也是回当前用户家目录
cd - 回上一次所在的目录
还有两种方法
cd /root 使用绝对路径
cd root 使用相对路径
cd /root 使用绝对路径
cd root 使用相对路径
复习:
1、用户主目录有哪两种? /root and /home/username
2、常用的配置文件存放在哪个目录? /etc
3、内核引导目录是哪个? /boot
2、常用的配置文件存放在哪个目录? /etc
3、内核引导目录是哪个? /boot
用了这个命令了吗?ls -a,是不是里面有两个目录很奇怪,一个是.,一个是..
. 代表当前目录
.. 代表上一级目录
.. 代表上一级目录
如果我用cd ..这个命令会切换到哪个目录?OK 就是/,应为root 的上级目录就是 /,~ 那个位置都知道是代表个人主目录(类似于 Windows 的 C:\Document and Settings\XXXX\)
但是怎么才能让他显示当前的完整路径呢?可以更改环境变量来实现当前状态
vi /etc/bashrc,修改这一行后面大写的W,改成小写的w就可以了,保存退出。
u 就是当前用户,h 就是主机名字,w 就是当前目录
要查看修改结果,我们需要关闭终端,重新打开终端就可以看见效果了,修改后就成了这种效果
现在讲讲ls 命令
ls -a 显示所有文件 包括隐藏文件
ls -l 以长列表方式显示文件
LINUX里只要文件名前有一个点的就是隐藏文件
ls -l 以长列表方式显示文件
LINUX里只要文件名前有一个点的就是隐藏文件
这是我在相同目录用两个命令的效果
这是长列表方式显示文件
用ls –l以长模式察看文件的详细信息
包含当前目录的硬盘使用空间、文件类型、文件权限、硬连接数、文件拥有者、文件所属组、文件大小、更动时间、文件名。
包含当前目录的硬盘使用空间、文件类型、文件权限、硬连接数、文件拥有者、文件所属组、文件大小、更动时间、文件名。
一共10个位置,大家都可以自己数下
第一个"-"是什么意思?第一个"-"位置是代表文件类型的。
在linux中,所有东西都被当成文件。
文件权限前的第一个字母用来标识文件类型:
-:一般文件
d:目录文件
b:块设备文件
c:字符设备文件
l:链接文件
p:人工管道
文件权限前的第一个字母用来标识文件类型:
-:一般文件
d:目录文件
b:块设备文件
c:字符设备文件
l:链接文件
p:人工管道
第一个位置代表文件类型了,那么剩下的9个呢?
234位代表文件所有者的权限。
567位代表文件所属组的权限。
89 10 代表其他用户的权限。
567位代表文件所属组的权限。
89 10 代表其他用户的权限。
文件的前面10位的含义大家都了解了吗?
r 是读的意思
W 是写的意思
X 是执行的意思
W 是写的意思
X 是执行的意思
知识点:
硬连接就像一个文件有多个文件名,
软连接就是产生一个新文件,这个文件指向另一个文件的位置,
硬连接必须在同一文件系统中,而软连接可以跨文件系统.
软连接就是产生一个新文件,这个文件指向另一个文件的位置,
硬连接必须在同一文件系统中,而软连接可以跨文件系统.
我想看以长列表方式看/root目录,
该用什么命令?
ls
-l
/root
上图是看不到/root
目录的长列表,你在文件名那里找不到/root
,
根本不会看目录。
所以我们需要加一个d
参数,
ls
-ld
/root
注意,在打命令和目录的时候,你们一定要用TAB键来补全 ,这样比较轻松,也能检查命令是否正确。如果不能补全就证明你的命令有问题
用命令补全,TAB,他会自动加上最后那个/符号,证明这是个目录,如果后面没有/ 的话,这个可能是目录,也可能是文件
其实还有两种方法可以查看root的长列表,你们在思考下,运用我们刚才学会的知识,好好思考下
我们刚才说过
ls
是查看目录内的文件,如果我在/ 里看的话就能看见root了,
用file检查文件类型
由于linux中的文件名中没有扩展名,所以可能需要用file来查看文件类型
上一个是ASCII的TEXT文本文件,第二个是目录,这个命令基本就这样了,功能不是很强
问题:
LINUX的文件名最多支持多少字符?
这是/etc/passwd,里面有两个500,第一个500,是redhat这个用户的UID,第二个500是这个用户的主用户组ID叫GID,用户建立的文件所属组就是这个文件定义的.
![](https://i-blog.csdnimg.cn/blog_migrate/6d73cd2d325f12ed7017a9c85414e6d5.jpeg)
范例:
删除所有C语言程式档;删除前逐一询问确认 :
rm -i *.c
将 Finished 子目录及子目录中所有档案删除 :
rm -r Finished
重命名(移动 )文件
文件权限系统,将操作文件的用户都分成三类
文件的拥有者(u)
文件所属组的成员(g)
其他用户(o)
所属组
![](https://i-blog.csdnimg.cn/blog_migrate/b6935dd726841472e6d4597ce69ce0e2.jpeg)
root用户也可以使用 #chown 用户名:组名 文件名
一般普通用户的用户ID与组ID的值大于等于500,而系统用户ID与组ID小于500。(详情请查看/etc/login.defs配置文件)
ls
-l
就可以了,也可以用ll命令。
还有一种
就是
我们刚才提到的.
和..
在/root
目录用
ls
-a,其中的.也就是root了。也就达到我的要求了。
用file检查文件类型
由于linux中的文件名中没有扩展名,所以可能需要用file来查看文件类型
![](https://i-blog.csdnimg.cn/blog_migrate/801734ed023be0a0bb481d3a3e1cc2c7.jpeg)
新建文件
名称:touch
使用权限:所有使用者
使用方式:
touch [-acfm]
[-r reference-file] [--file=reference-file]
[-t MMDDhhmm[[CC]YY][.ss]]
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
[--no-create] [--help] [--version]
file1 [file2 ...]
说明:
touch 指令改变档案的时间记录。 ls -l 可以显示档案的时间记录。
参数:
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
--no-create 不会建立新档案。
--help 列出指令格式。
--version 列出版本讯息。
范例:
最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。
touch file
touch file1 file2
将 file 的时间记录改为 5 月 6 日 18 点 3 分,公元两千年。
时间的格式可以参考 date 指令,至少需输入 MMDDHHmm ,就是月日时与分。
touch -c -t 05061803 file
touch -c -t 050618032000 file
使用权限:所有使用者
使用方式:
touch [-acfm]
[-r reference-file] [--file=reference-file]
[-t MMDDhhmm[[CC]YY][.ss]]
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
[--no-create] [--help] [--version]
file1 [file2 ...]
说明:
touch 指令改变档案的时间记录。 ls -l 可以显示档案的时间记录。
参数:
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
--no-create 不会建立新档案。
--help 列出指令格式。
--version 列出版本讯息。
范例:
最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。
touch file
touch file1 file2
将 file 的时间记录改为 5 月 6 日 18 点 3 分,公元两千年。
时间的格式可以参考 date 指令,至少需输入 MMDDHHmm ,就是月日时与分。
touch -c -t 05061803 file
touch -c -t 050618032000 file
将 file 的时间记录改变成与 referencefile 一样。
touch -r referencefile file
touch -r referencefile file
将 file 的时间记录改成 5 月 6 日 18 点 3 分,公元两千年。
时间可以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000。
====================================================
touch -d 和 date -s 的用法相同。
时间可以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000。
====================================================
touch -d 和 date -s 的用法相同。
如果没有指定日期,默认为系统日期
touch -d 18:03 file
touch -d "18:03" file
touch -d "6:03pm" file
如果没有指定时间,默认为 00:00:00
touch -d 20000506 file
touch -d "05/06/2000" file
touch -d "20000506" file
touch -d 18:03 file
touch -d "18:03" file
touch -d "6:03pm" file
如果没有指定时间,默认为 00:00:00
touch -d 20000506 file
touch -d "05/06/2000" file
touch -d "20000506" file
touch -d "6:03pm 05/06/2000" file
touch -d "20000506 18:03" file
touch -d "20000506 18:03:00" file
touch -d "20000506 18:03" file
touch -d "20000506 18:03:00" file
问题:
LINUX的文件名最多支持多少字符?
LINUX 文件名字的长度最大是256个字符.
通常由字母、数字、“.”(点号)、“_”(下划线)和 “-”(减号)组成.
强调: LINUX文件名字和命令都是严格区分大小写的。51Cto 51cTo 51CTO 都是LINUX里面表示不同的文件.
![](https://i-blog.csdnimg.cn/blog_migrate/5acd5b627ee6417333f164a620e93b77.jpeg)
大家都知道,一个用户,可以加入多个组。但是这个用户建立的文件默认属于哪个组呢?默认创建的文件的组是所有者的主用户组GID。
![](https://i-blog.csdnimg.cn/blog_migrate/6db1e423ced262a90d35b78a082b5cb4.jpeg)
删除文件
名称:rm
使用权限:所有使用者
使用方式:rm [options] name...
说明:删除档案及目录。
参数:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
使用权限:所有使用者
使用方式:rm [options] name...
说明:删除档案及目录。
参数:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。为了防止这种情况的发生,可以使用i选项来逐个确认要删除的文件。
![](https://i-blog.csdnimg.cn/blog_migrate/6d73cd2d325f12ed7017a9c85414e6d5.jpeg)
范例:
删除所有C语言程式档;删除前逐一询问确认 :
rm -i *.c
将 Finished 子目录及子目录中所有档案删除 :
rm -r Finished
快速删除log日志
rm -f *1001.log *1002.log *1003.log *1004.log
重命名(移动 )文件
名称:cp
使用权限:所有使用者
使用方式:
cp [options] source dest
cp [options] source... directory
说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。
把计
-a 尽可能将档案状态、权限等资料都照原状予以复制。
-r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
范例:
将档案 aaa 复制(已存在),并命名为 bbb :
cp aaa bbb
将所有的C语言程式拷贝至 Finished 子目录中 :
cp *.c Finished
使用权限:所有使用者
使用方式:
cp [options] source dest
cp [options] source... directory
说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。
把计
-a 尽可能将档案状态、权限等资料都照原状予以复制。
-r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
范例:
将档案 aaa 复制(已存在),并命名为 bbb :
cp aaa bbb
将所有的C语言程式拷贝至 Finished 子目录中 :
cp *.c Finished
我们把51cto文件复制到/home/michael目录下,并改名为blog51cto
![](https://i-blog.csdnimg.cn/blog_migrate/1649dab1fc636867f5e999b5f40fb4dc.jpeg)
RHCE课程-初级部分3、文件权限(重点)
文件权限
对于每一个文件,Linux都提供了一套文件权限系统。
对于每一类用户,权限系统又分别提供他们三种权限
读(r) :用户是否有权力读文件的内容
写(w) :用户是否有权利改变文件的内容
执行(x) :用户是否有权利执行文件
对于每一类用户,权限系统又分别提供他们三种权限
读(r) :用户是否有权力读文件的内容
写(w) :用户是否有权利改变文件的内容
执行(x) :用户是否有权利执行文件
文件权限系统,将操作文件的用户都分成三类
文件的拥有者(u)
文件所属组的成员(g)
其他用户(o)
所属用户
每一个文件都有一个拥有者。文件的拥有者可以改变文件的权限。所有的用户都有一个唯一的ID号(UID)
用户的名字与标识都放在/etc/passwd里面
用户的名字与标识都放在/etc/passwd里面
下面接着将讲几个简单的命令
创建用户:useradd
添加一个叫amy的用户,amy是你想要创建的用户名.命令运行成功,是不会有任何提示的.
![](https://i-blog.csdnimg.cn/blog_migrate/b2c006278a4d6c52c41e8c0bd7c8b3b0.jpeg)
然后用passwd 改变这个用户的密码。
![](https://i-blog.csdnimg.cn/blog_migrate/1e5c1c602d78c101db55b5451e3e214a.jpeg)
注意;如果你passwd命令后面不跟用户名的话,他就会改变当前用户的密码。
刚才的两个命令我们就创建了一个普通用户,并修改了他的密码
删除用户:userdel
语 法:userdel [-r][用户帐号]
userdel可删除用户帐号与相关的文件。
![](https://i-blog.csdnimg.cn/blog_migrate/63932c855e7a21dbc2c5e2c2f4755ac4.jpeg)
若不加参数,则仅删除用户帐号,而不删除相关文件。就像下面这样
![](https://i-blog.csdnimg.cn/blog_migrate/f8a3364e229bd2bbeb26f14ed66fa7e5.jpeg)
参 数:
-f 删除用户登入目录以及目录中所有文件。
-f 删除用户登入目录以及目录中所有文件。
现在我们用su - amy命令切换到刚才建立的目录
![](https://i-blog.csdnimg.cn/blog_migrate/3b1817cec874f423751466268a02e116.jpeg)
谁能告诉中间那 - 符号有什么意义?
中间那个 - 符号的意思完整切换到amy用户。所谓的完整就是连着所有变量一起切换.
很重要的细节,大家不要忘记,不然你切换用户会出现莫名其妙的问题
对于“-”;切换的效果是看不出来的,在那里能体现到这一点?
好嘛,我再在这花点时间,先是完整切换到一般用户,然后不用- 切换回root。再用useradd新建一个用户试试。
![](https://i-blog.csdnimg.cn/blog_migrate/be14db52cc4d93f197132e7e8305a7eb.jpeg)
提示:bash:useradd: command not found
这就是为什么要求你们完整切换,明白了吗?
上面你们都知道文件权限,和文件所有者还有所属组了,那么怎么改变文件权限呢?
chmod 文件权限 文件名字
只有root用户可以用chown来改变文件的拥有者。
语法:chown 用户名 文件名
语法:chown 用户名 文件名
建立文件用touch 命令,
大家建立一个文件
名字叫;51cto
权限: u=rwx g=rx o=rx
名字叫;51cto
权限: u=rwx g=rx o=rx
touch 命令大家都会吧?
建立好了,用长列表方式查看,
![](https://i-blog.csdnimg.cn/blog_migrate/545c86472fcd69b935244143fe3fe730.jpeg)
改变文件权限有两种方法:
一种是用字母表示,
比如:u+rwx g+rwx o+rwx,
也可以用减号u-rwx g-rwx o-rwx
由于时间关系和大家都有基础,用字母我就提下。 一般都是用数字,这个才是重点
第二种chmod后可以用三个数字来表示用户权限
第一位代表文件拥有者权限
第二位代表文件所属组成员权限
第三位代表其他用户权限
第一位代表文件拥有者权限
第二位代表文件所属组成员权限
第三位代表其他用户权限
一个文件权限分成U,G,O三部分。每部分又分为R,W,X三种权限。那么我们用三组数字来表示,三种用户的权限。
4(读)
2(写)
1(执行)
4(读)
2(写)
1(执行)
用数字表示,比如 777
如果是7,就证明他有那三种权限,如果是5就证明那个位置的用户只有4和1的权限,也就是没有2,写的权限。
大家把刚才那个51cto的文件改成amy所有
![](https://i-blog.csdnimg.cn/blog_migrate/77f7a502bf4cd70b0a77387bb94804b3.jpeg)
所属组
每一个文件只能属于一个指定的组。所有的用户组也都有一个唯一的ID号(GID)
用户的组名与组标识都放在/etc/group里面
文件的拥有者与root用户,可以用chgrp来改变文件所属的组
语法:chgrp 组名 文件名
用户的组名与组标识都放在/etc/group里面
文件的拥有者与root用户,可以用chgrp来改变文件所属的组
语法:chgrp 组名 文件名
然后在把刚才那个的所有组也改成amy组
![](https://i-blog.csdnimg.cn/blog_migrate/b6935dd726841472e6d4597ce69ce0e2.jpeg)
root用户也可以使用 #chown 用户名:组名 文件名
一般普通用户的用户ID与组ID的值大于等于500,而系统用户ID与组ID小于500。(详情请查看/etc/login.defs配置文件)
查询当前Linux版本:uname -a
![](https://i-blog.csdnimg.cn/blog_migrate/23ad35edb5bdabf21df5fa1efe374073.jpeg)
大家都知道,我们创建一个用户的时候,会自动创建用户主目录,会分配UID,还有密码策略,是怎么规定的吗?
就是在login.defs这个文件里面
打开这个文件vim /etc/login.defs
![](https://i-blog.csdnimg.cn/blog_migrate/1b4d9a5dbf01addb7c6c5800711b8a4c.jpeg)
下面这行看见了吗?
![](https://i-blog.csdnimg.cn/blog_migrate/8d8c6ed24fff2a78469b242e4abc3a09.jpeg)
意思是建立用户的时候同时也在规定的这个目录建立邮件目录。
默认不显示行号,可以使用:set nu命令显示行号。
![](https://i-blog.csdnimg.cn/blog_migrate/33b048bd82b776908ec09a263c1aa99c.jpeg)
第17行,意思是密码有效期
第18行,是密码最小更改时间,单位是天。为0,就是没有限制,随时可以更改。
第19行,是安全密码的最小位数
第20行,是密码过期前几天提醒用户,默认是7天。
![](https://i-blog.csdnimg.cn/blog_migrate/80b78847b7ff8d0e4b7dce815c03a339.jpeg)
第25行 意思是新建用户的最小UID是500
第26行 新建拥护的最大UID是60000
![](https://i-blog.csdnimg.cn/blog_migrate/d2fa1a55d1b7cbcb7bb376b4f84b8e90.jpeg)
同理,你们就该知道GID的意思了吧,
31和32行就是最小到最大的GID
![](https://i-blog.csdnimg.cn/blog_migrate/98817dc54ff74508ab54512055e83987.jpeg)
每个用户都有一个对应的UID,正常情况下,服务器里不会有两个相同的UID。
PS:在强行改变/etc/passwd的情况是可以出现两个用户有相同的UID
下面我们做个实验,先建立一个用户redhat,然后完整切换到这个用户,在家目录里创建一个文件file,把权限改成所有者可写,其他用户什么权限都没有.
![](https://i-blog.csdnimg.cn/blog_migrate/def2e0b57684b9a0d24b5d3aba84afac.jpeg)
在这,再讲一个命令。
cp 源文件 目标地点新文件名字
复制一个文件到其他地方
复制一个文件到其他地方
用这个命令 把你们刚才建立的文件拷贝到根下面
![](https://i-blog.csdnimg.cn/blog_migrate/63d7558d2411df94aed9d5fdc767c173.jpeg)
直接用 cp -p 参数重新复制一次
-p 参数的意思是保持原文件的权限和属性不变
![](https://i-blog.csdnimg.cn/blog_migrate/bbb03985af36c4b02fbdaffa347dd483.jpeg)
大家仔细看下我的操作
看下我CP的时候加了 -p和没有加,两个文件的区别
一般CP都会把新生成的文件的所有者改成使用命令的用户及用户组。如果加 -p 就不会改变。
下面切换成 redhat 用户,然后用 vim /file和 vim /file1
vim /file1
![](https://i-blog.csdnimg.cn/blog_migrate/09fbf2d20d9604c1bf01b2367afbb462.jpeg)
证明我们是有权限给里面写东西的,注意最下面的
![](https://i-blog.csdnimg.cn/blog_migrate/e7e1e5de85f3fe614dcf2102f3467a47.jpeg)
然后 vim file
![](https://i-blog.csdnimg.cn/blog_migrate/8c0e4e22502fb75dc003a027af32fa62.jpeg)
redhat用户对这个文件是没有权限更改的,因为redhat用户对file是没有写入权限
![](https://i-blog.csdnimg.cn/blog_migrate/114d87ca2506424f49dd2f3e00e22440.jpeg)
好了,进入重点。
现在我们删除redhat 用户
![](https://i-blog.csdnimg.cn/blog_migrate/f093b5a49ddac81760a9b1828f8b076e.jpeg)
再新建redhat 用户,切换到redhat用户,你们说现在我可以编辑/file1吗?不能
![](https://i-blog.csdnimg.cn/blog_migrate/feb8628d145001ecfe1e8c92b51bf192.jpeg)
第二次建的redhat用户不能再编辑/file1文件
![](https://i-blog.csdnimg.cn/blog_migrate/c98e52b074dda1ab0e43164806d1ddc5.jpeg)
现在我们看看file1的所有者
![](https://i-blog.csdnimg.cn/blog_migrate/f37dfa891f13ee73877781534346ce22.jpeg)
由于没有了刚才的redhat用户,所以用户所有者及组变成了刚才redhat的UID:500。
这是刚才的效果
![](https://i-blog.csdnimg.cn/blog_migrate/08bccfa53b3b29c936663046aea52d32.jpeg)
再看下现在的
![](https://i-blog.csdnimg.cn/blog_migrate/f1d0d39b1f74c3a2f540cc652f3acc56.jpeg)
两个redhat用户名字一样,但是UID不一样。他们的权限也不一样.这样你们应该就知道UID的用处了
主要这个实验步骤比较多,但是都不难
PS:有种极端的情况:如果这个redhat是UID最后一位用户,就是在它UID后没有比它大的UID用户,当此用户被删除后再重新建一个同名的用户时,新建的用户有它同样的UID。如下peter用户一样:
![](https://i-blog.csdnimg.cn/blog_migrate/eab46c8502fc36b79232eb5e3707c1ed.jpeg)
新建的peter用户对/test文件两样有权限编辑
![](https://i-blog.csdnimg.cn/blog_migrate/e34cc7d8e7c13697a268cc0bf5740d8b.jpeg)
我们继续看刚才那个文件哈
46行,是否给新建立的用户建立家目录。
50行,给用户建立的家目录的权限掩码。
![](https://i-blog.csdnimg.cn/blog_migrate/6aecd1ca9d232b68515d3b7dbed0d970.jpeg)
目录的初始权限是777
文件的初始权限是666
文件的初始权限是666
然后用初始权限减去权限掩码得到的就是新建文件或者目录的权限
可以用umask命令查看当前用户的权限掩码
普通用户的掩码是0002
root的掩码是0022
![](https://i-blog.csdnimg.cn/blog_migrate/8ec8b86383eb964b111c23f4801cdc39.jpeg)
新建目录的权限就是777-022=755
新建文件的权根就是666-022=744
新建文件的权根就是666-022=744
用户家目录的掩码是077
用户家目录的权根就是777-077=700
就是下面这种效果
![](https://i-blog.csdnimg.cn/blog_migrate/0574783b4bce04c49a027e053931d303.jpeg)
最后一项,意思在建立一个用户的时候也建立相应的组。
![](https://i-blog.csdnimg.cn/blog_migrate/13cb4fee2269e91f80791e270965f807.jpeg)
记住我们刚才讲的是login.defs这个文件的内容:新建用户的配置文件
![](https://i-blog.csdnimg.cn/blog_migrate/067f8e6494200f4329a9e57e186050f9.jpeg)
#################################################################
PS:并以此文纪念首次使用Windows Live Writer客户端在51CTO写博客,以前老用maxthon写,最近写前两个笔记时老是IE死机,差不多每写一稿要死机3-4次,郁闷,写得差不多了只能重写,再次郁闷。
我看看Windows Live Writer上传后的效果哈!HOHO
看了后在Windows Live Writer中不能设置标签、文章分类及版权声明,不知道是我不知道还是本来就是这样的,要自己在网页改。好像51cto的水印也没有了,555
再次郁闷的是我上传后我的IE又不幸死机了,郁闷进行中!
![](https://i-blog.csdnimg.cn/blog_migrate/0d18f111de6d112616cdd672e387fc04.jpeg)
转载于:https://blog.51cto.com/liangsww/129093