二、Shell编程--知识准备(linux文件权限以及用户授权)

1、文件权限

1)红框内各位的意义
<1> 第一位:代码文件类型:
- :普通文件
d :目录文件
l :链接文件
b :块设备文件
c :字符设备文件
p :管道文件
<2> 2~4位:代表文件拥有者对文件拥有的权限,三位一次为r(只读)、w(写)和x(执行,目录的话需要有该权限才能进入到该录)。
<3> 5~7为:代表文件所在组其他用户对文件拥有的权限,三位一次为r(只读)、w(写) 和x(执行,目录的话需要有该权限才能进入到该录)。
<4>8~10位:代表文件用户者组以外其他用户所拥有的权限,三位一次为r(只读)、w(写)和x(执行,目录的话需要有该权限才能进入到该录)。
2)文件颜色的意义
<1> 蓝色文件:目录
<2>白色文件:一般性文件,如文本文件,配置文件,源码文件等
<3> 浅蓝色文件:链接文件,主要是使用ln命令建立的文件
<4> 绿色文件:可执行文件,可执行的程序
<5> 红色文件:压缩文件或者包文件
<6> 红色闪烁:表示链接的文件有问题了
<7> 黄色:设备文件
3)其他信息
红框后的列意思依次是:文件数、拥有者、所属组、文件大小、建档日期、文件名
4)查看具体文件的用户权限:ls -l 文件名
5)权限分配
<1> chmod:普通文件或目录的权限控制
* chmod 755 file 4:读 2:写 1:执行



* chmod u+x file -> chmod u+x, u+w , o+w file

<2> acl:普通目录或文件的权限控制( 仅仅是对文件内容的读写执行
*setfacl:设置文件权限 -m 修改 u:用户

*getfacl:查看文件权限

*删除文件权限 -x 删除
setfacl -x user:username file
*清空文件权限
setfacl -b file 恢复到最原始的状态
*文件创建和删除的权限
对目录设置权限即可:setfacl -m u:user1:rwx /目录名
*对文件目录以及子目录和文件权限一块设置(-R 标识递归)
setfacl -m u:user1:rwx -R /目录名/
*继承父目录权限(子目录后期新添加的文件或目录权限不足)
setfacl -m u:user1:rwx -R /目录名/
setfacl -m d:u:user1:rwx -R /目录名/ (d: ->意思是继承)
<3> sudo:控制某一用户对某一文件或脚本拥有某些权限;可以理解为对应用程序或命令的权限;
*执行visudo
*添加 username localhost=/user/bin/useradd
未设置sudo

设置sudo

添加一行用户权限行
localhost:代表本机( 远程机器执行该命令时会报:user1 is not allowed to run sudo on。。。

ALL:代表所有机器

2、用户管理
1)用户分类
<1> u:所有者
<2> g:所属组
<2> 0:其他用户
<4> a:所有用户
2)用户管理
<1> 添加:useradd username
<2> 删除:userdel username
<3> 查看:id [username]
<4> 设置密码: passwd username
添加示例:

删除示例:

3)涉及用户的文件目录
<1> /etc/passwd:存放用户信息
<2> /etc/group:存放组信息
<3> /etc/shadow:存放用户密码
未设置密码:

已设置密码:

<4> /home:除root用户在根目录下的/root 下,其他用户都会在home下有一个以用户名命名的文件夹。

3、用户与组
1)将用户加入组
gpasswd -a username groupname

2)将用户移除组
gpasswd -a username groupname

3) 添加一个空组
groupadd groupname


猜你喜欢

转载自blog.csdn.net/gosenkle/article/details/80139952
今日推荐