https://www.cnblogs.com/tan-y-q/p/10879133.html
linux中每个文件(目录)都设有访问许可权限,利用这种机制来决定某个用户通过某种方式对文件(目录)进行读、写、执行等操作
➜ test # ls -lah
total 36
drwxr-xr-x 4 root root 190 Feb 24 10:47 .
drwxr-xr-x. 31 root root 4096 Jan 10 19:13 ..
-rw-r--r-- 1 root root 121 Feb 24 10:46 clean.sh
-rw-r--r-- 1 root root 220 Feb 18 14:59 docker-compose.yml
-rw-r--r-- 1 root root 1529 Feb 21 13:56 Dockerfile
drwxr-xr-x 4 root root 74 Feb 19 14:15 tmp
ls命令执行结果的第1列为文件(目录)的权限标识
drwxrwxrwx => d rwx rwx rwx
- 10个字符确定不同用户能对文件干什么
- 第一个字符代表文件(-)、目录(d),链接(l)
- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)
- 第一组rwx:文件所有者的权限是读、写和执行
- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行
rwx rwx rwx组合依次为"文件所有者、群组用户、其他用户"读写执行权限
100 4 r 读权限
10 2 w 写权限
1 1 x 执行权限
-rw-r--r-- 1 root root 121 Feb 24 10:46 clean.sh
- 1标识文件链接数,文件为1,目录为该目录下除.目录的目录+文件的个数
- 第1个root 为文件所有者用户
- 第2个root 为文件所在的组
- 121标识文件大小(字节)
chmod 命令可以修改文件的用户权限
1、用rwx字母参数为全部用户添加该权限
chmod +x clean.sh # 为该文件所有用户(文件所有者、群组用户、其他用户)添加执行权限
chmod +xr clean.sh # 为该文件所有用户添加读和写权限
chmod -w clean.sh # 为该文件所有用户去掉写权限
赋予指定用户类型文件操作权限
chmod u=rwx,g=rx,o=rx clean.sh # 同上u=用户权限,g=组权限,o=不同组其他用户权限
chmod u-x,g+w clean.sh # 给clean.sh去除用户执行的权限,增加组写的权限
chmod a+r clean.sh # 给所有用户添加读的权限
chmod +r clean.sh # 同上
2、用124数字参数为指定用户添加该权限;位置用户如下:
[文件所有者权限,群组用户权限,其他用户权限]
chmod 142 clean.sh # 为该文件的文件所有者添加执行权限,文件群组用户添加读权限,其他用户添加写权限
chmod 201 clean.sh # 为该文件的文件所有者添加写权限,文件群组用户添加无权限,其他用户添加执行权限
chmod 22 clean.sh # 为该文件的文件所有者无权限,文件群组用户添加写权限2,其他用户添加写权限2;
chmod 022 clean.sh # 同上
同样 chmod 003 clean.sh 与 chmod 3 clean.sh 相同,只为其他用户添加写权限和执行权限;
数字权限参数可组合得到:
chmod 744 clean.sh # 为该文件的文件所有者添加读权限4+写权限2+执行权限1,文件群组用户添加读权限4,其他用户添加读权限4;
chmod 506 clean.sh # 为该文件的文件所有者添加读权限4+执行权限1,文件群组用户无权限,其他用户添加读权限4+写权限2;
3、改变文件的所有者(chown)和用户组(chgrp)命令
chown xiaoming clean.sh # 改变clean.sh的所有者为xiaoming
chgrp root clean.sh # 改变clean.sh所属的组为root
chown root ./tmp # 改变tmp这个目录的所有者是root
chown ‐R root ./tmp # 改变tmp这个目录及其下面所有的文件和目录的所有者是root
4、用户及所在组操作(需要root权限)
Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统
Linux 的每个用户需要至少要属于一个组,一个组可以有多个用户
a. 添加组添加用户
groupadd 组名 # 添加组
useradd 用户名 # 添加用户
useradd -g group1 user1 # 添加user1到group1组
useradd user2 # 创建user2用户和user2组,系统自动创建和用户名相同的用户组,并将其设定
userdel -r user2 # 彻底删除用户包括/home/user2目录
userdel user2 # 只删除相关注册信息 /home/user2目录保留
b. 为创建用户的主组,同时创建同名/home/user2目录
cat /etc/group # 查看组信息
passwd user1 # 给用户添加登录密码
cat /etc/passwd # 查看用户信息
c. 修改用户组 在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组
usermod -g 组名 用户名 # 改变用户所在的组
usermod -g root user1
usermod -d 目录名 用户名 # 改变该用户登录的初始目录
usermod -d /root user1
groupadd 组名 添加用户组
useradd -g 组名 用户名 创建指定组的用户
usermod -g 组名 用户名 修改用户组
用户和组的相关文件
/etc/passwd文件------------ 用户信息
/etc/group文件------------- 组信息
/etc/shadow文件------------ 密码和登入信息(加密的)