第7章 理解Linux文件权限
2016-12-24 01:03
405 查看
7.1 Linux的安全性
7.1.1 /etc/passwd文件
包含用户相关的信息。
Linux系统会为各种各样的功能创建不同的用户账号,这些账号叫作系统账号,是系统上运行的各种服务进程访问资源用的特殊账户。
![](https://img-blog.csdn.net/20161223231552586?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDgxOTQxNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
/etc/passwd文件的字段包含了如下信息:
*登录用户名
*用户密码
*用户账号的UID
*用户账号的组ID
*用户账号的文本描述
*用户HOME目录的位置
*用户的默认shell
密码字段被设置成了x,用户密码保存在/etc/shadow
7.1.2 /etc/shadow文件
![](https://img-blog.csdn.net/20161223232216063?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDgxOTQxNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
shadow密码系统可用控制用户多久更改一次密码,以及什么时候禁用该用户账号。
7.1.3 添加新用户
useradd命令使用系统的默认值以及命令行参数来设置用户账号。
系统默认值被设置在/etc/default/useradd文件中。可以使用加入了-D选项的useradd命令查看所用Linux系统中的这些默认值。
![](https://img-blog.csdn.net/20161223233813242?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDgxOTQxNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
用默认系统参数创建一个新用户账号
useradd -m test
7.1.4 删除用户
userdel命令会只删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件,加上-r参数,会删除用户的HOME目录以及邮件目录。
userdel -r test
7.1.5 修改用户
1 usermod
能用来修改/etc/passwd文件中的大部分字段,只需用与想修改的字段对应的命令行参数就可以了。
2 passwd和chpasswd
![](https://img-blog.csdn.net/20161224000957828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDgxOTQxNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
chpasswd命令能从标准输入自动读取登录名和密码对(由冒号分割)列表,给密码加密,然后为用户账户设置。
可以用重定向命令来将含有userid:passwd对的文件重定向给该命令。
3 chsh、chfn和chage
chsh命令用来修改默认的用户登录shell
chfn命令提供了在/etc/passwd文件的备份字段中存储信息的标准方法。
chage命令管理用户账户的有效期。
7.2 使用Linux组
7.2.1 /etc/group文件
/etc/group文件包含系统上用到的每个组的信息。
![](https://img-blog.csdn.net/20161224092552171?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDgxOTQxNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
/etc/group文件有个字段:
*组名
*组密码
*GID
*属于该组的用户列表
当一个用户在/etc/passwd文件中指定某个组作为默认组时,用户账号不会作为该组成员再出现在/etc/group文件中。
7.2.2 创建新租
groupadd命令可在系统上创建新租。
可以用usermod命令将用户分配到组。
![](https://img-blog.csdn.net/20161224094157806?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDgxOTQxNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
7.2.3 修改组
groupmod命令可以修改已有组的GID(-g)或祖名(-n)
![](https://img-blog.csdn.net/20161224094517999?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDgxOTQxNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
修改祖名时,GID和组成员不会变,只有祖名改变。
7.3 理解文件权限
7.3.1 使用文件权限符
第一个字符代表了对象的类型:
*-代表文件
*d代表目录
*l代表链接
*c代表字符型设备
*b代表块设备
*n代表网络设备
3组权限:
*对象的属主
*对象的属组
*系统其他用户
7.3.2 默认文件权限
umask命令用来设置所创建文件和目录的默认权限。
![](https://img-blog.csdn.net/20161224101200208?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDgxOTQxNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
第一位代表了一项特别的安全特性,叫作粘着位。
对文件来说,全权限的值是666;对于目录,则是777。
上例中,文件一开始的权限是666,减去umask值022之后,剩下的文件权限就成了644。
![](https://img-blog.csdn.net/20161224101924984?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDgxOTQxNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
7.4 改变安全性设置
7.4.1 改变权限
格式:chmod options mode file
mode参数可以使用八进制模式或符号模式进行安全性设置。
chmod 760 newfile
7.4.2 改变所属关系
chown可以改变文件的属主和属组。
chown options owner[.group] file
chown dan newfile
chown dan.shared newfile
chown .rich newfile
只有root用户能够改变文件的属主。任何属主都可以改变文件的属组。
chgrp命令可以更改文件或目录的默认属组。
chgrp shared newfile
7.5 共享文件
Linux为每个文件和目录存储了3个额外的信息位。
*设置用户ID(SUID):当文件被用户使用时,程序会以文件属主的权限运行。
*设置组ID(SGID):对文件来说,程序会议文件属组的权限运行;对目录来说,目录中创建的新文件会以目录的默认属组作为默认属组。
*粘着位:进程结束后文件还驻留在内存中。
启用SGID位后,可以强制在一个共享目录下创建的新文件都属于该目录的属组。
SGID可通过chmod命令设置。他会加到标准3为八进制前之前,或者在符号模式下用符号s
要创建一个共享目录,使目录里的新文件都能沿用目录的属组,只需将该目录的SGID位置位。
7.6 小结
7.1.1 /etc/passwd文件
包含用户相关的信息。
Linux系统会为各种各样的功能创建不同的用户账号,这些账号叫作系统账号,是系统上运行的各种服务进程访问资源用的特殊账户。
/etc/passwd文件的字段包含了如下信息:
*登录用户名
*用户密码
*用户账号的UID
*用户账号的组ID
*用户账号的文本描述
*用户HOME目录的位置
*用户的默认shell
密码字段被设置成了x,用户密码保存在/etc/shadow
7.1.2 /etc/shadow文件
shadow密码系统可用控制用户多久更改一次密码,以及什么时候禁用该用户账号。
7.1.3 添加新用户
useradd命令使用系统的默认值以及命令行参数来设置用户账号。
系统默认值被设置在/etc/default/useradd文件中。可以使用加入了-D选项的useradd命令查看所用Linux系统中的这些默认值。
用默认系统参数创建一个新用户账号
useradd -m test
7.1.4 删除用户
userdel命令会只删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件,加上-r参数,会删除用户的HOME目录以及邮件目录。
userdel -r test
7.1.5 修改用户
1 usermod
能用来修改/etc/passwd文件中的大部分字段,只需用与想修改的字段对应的命令行参数就可以了。
2 passwd和chpasswd
chpasswd命令能从标准输入自动读取登录名和密码对(由冒号分割)列表,给密码加密,然后为用户账户设置。
可以用重定向命令来将含有userid:passwd对的文件重定向给该命令。
3 chsh、chfn和chage
chsh命令用来修改默认的用户登录shell
chfn命令提供了在/etc/passwd文件的备份字段中存储信息的标准方法。
chage命令管理用户账户的有效期。
7.2 使用Linux组
7.2.1 /etc/group文件
/etc/group文件包含系统上用到的每个组的信息。
/etc/group文件有个字段:
*组名
*组密码
*GID
*属于该组的用户列表
当一个用户在/etc/passwd文件中指定某个组作为默认组时,用户账号不会作为该组成员再出现在/etc/group文件中。
7.2.2 创建新租
groupadd命令可在系统上创建新租。
可以用usermod命令将用户分配到组。
7.2.3 修改组
groupmod命令可以修改已有组的GID(-g)或祖名(-n)
修改祖名时,GID和组成员不会变,只有祖名改变。
7.3 理解文件权限
7.3.1 使用文件权限符
第一个字符代表了对象的类型:
*-代表文件
*d代表目录
*l代表链接
*c代表字符型设备
*b代表块设备
*n代表网络设备
3组权限:
*对象的属主
*对象的属组
*系统其他用户
7.3.2 默认文件权限
umask命令用来设置所创建文件和目录的默认权限。
第一位代表了一项特别的安全特性,叫作粘着位。
对文件来说,全权限的值是666;对于目录,则是777。
上例中,文件一开始的权限是666,减去umask值022之后,剩下的文件权限就成了644。
7.4 改变安全性设置
7.4.1 改变权限
格式:chmod options mode file
mode参数可以使用八进制模式或符号模式进行安全性设置。
chmod 760 newfile
7.4.2 改变所属关系
chown可以改变文件的属主和属组。
chown options owner[.group] file
chown dan newfile
chown dan.shared newfile
chown .rich newfile
只有root用户能够改变文件的属主。任何属主都可以改变文件的属组。
chgrp命令可以更改文件或目录的默认属组。
chgrp shared newfile
7.5 共享文件
Linux为每个文件和目录存储了3个额外的信息位。
*设置用户ID(SUID):当文件被用户使用时,程序会以文件属主的权限运行。
*设置组ID(SGID):对文件来说,程序会议文件属组的权限运行;对目录来说,目录中创建的新文件会以目录的默认属组作为默认属组。
*粘着位:进程结束后文件还驻留在内存中。
启用SGID位后,可以强制在一个共享目录下创建的新文件都属于该目录的属组。
SGID可通过chmod命令设置。他会加到标准3为八进制前之前,或者在符号模式下用符号s
要创建一个共享目录,使目录里的新文件都能沿用目录的属组,只需将该目录的SGID位置位。
7.6 小结
相关文章推荐
- 理解Linux文件权限3
- 0220自学Linux_逻辑理解用户进程权限相关+理解文件内各字段(passwd,shadow,group)
- Linux学习笔记(五)----理解Linux文件权限
- 玩转并理解linux中的文件/目录的rwx权限
- Linux 文件权限理解
- 《Linux命令行与shell脚本编程大全》 第七章理解Linux文件权限
- 理解linux文件权限
- 个人理解Linux文件权限--以前记录的,根据鸟哥的第二版去解释的
- 深入理解Linux中的文件权限
- 理解Linux文件权限
- 第6章 理解Linux文件权限
- Linux如何理解用数字表示文件的操作权限
- Linux Shell学习笔记5:理解Linux文件权限
- linux命令行与shell脚本大全_第六章_权限_理解文件权限
- 【linux】对于文件权限的理解
- 理解Linux文件权限
- 理解Linux文件权限——第七章
- Linux如何理解用数字表示文件的操作权限
- Linux命令行–理解Linux文件权限(转)
- 《Linux命令行与shell脚本》笔记--第6章:理解Linux文件权限