1、文件权限

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


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:执行

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




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


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

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


<2> acl:普通目录或文件的权限控制( 仅仅是对文件内容的读写执行

*setfacl:设置文件权限 -m 修改 u:用户

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


*getfacl:查看文件权限

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


*删除文件权限 -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

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


设置sudo

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


添加一行用户权限行

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

localhost:代表本机( 远程机器执行该命令时会报:user1 is not allowed to run sudo on。。。

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


ALL:代表所有机器

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


2、用户管理

1)用户分类

<1> u:所有者

<2> g:所属组

<2> 0:其他用户

<4> a:所有用户

2)用户管理

<1> 添加:useradd username

<2> 删除:userdel username

<3> 查看:id [username]

<4> 设置密码: passwd username

添加示例:

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


删除示例:

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


3)涉及用户的文件目录

<1> /etc/passwd:存放用户信息

<2> /etc/group:存放组信息

<3> /etc/shadow:存放用户密码

未设置密码:

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


已设置密码:

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


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


3、用户与组

1)将用户加入组

gpasswd -a username groupname

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


2)将用户移除组

gpasswd -a username groupname

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


3) 添加一个空组

groupadd groupname