发新帖

[Linux] Linux命令系列之 - 用户组权限操作 - 用户组权限设置基本操作

零下一度 2022-5-20 926

Linux命令系列之 - 用户组权限操作 - 用户组权限设置基本操作


1、用户和组管理


用户和组相关文件:

/etc/passwd:用户及其属性信息

/etc/shadow:用户密码及其相关属性

/etc/group:组及其属性信息

/etc/gshadow:组密码及其相关属性

/etc/passwd文件格式:              

login name:登录用户名称
passwd:密码
UID:用户身份编号
GID:登录默认所在组编号
GECOS:用户全名或注释
home directory:用户主目录,家目录,如 /home/hong
shell:用户默认使用shell(如/bin/bash)

/etc/shadow文件格式:

登录用户名称

用户密码:一般用sha512加密

197011日起到密码最近一次被更改的时间

 

用户和组的关系:

用户的主要组:用户必须属于一个且只有一个主组,默认创建用户时会自动创建主组

用户的附加组:一个用户可以属于零个或多个辅助组,附属组

 

1.1组管理

Linux中可以将一个或多个用户加入用户组中,用户组是通过GIDgroup identifie)来唯一标识。

管理员组:root - 0

普通组:

系统组:对守护进程获取资源进行权限分配

普通组:给用户使用

用户组命令:

  groupadd:添加组

  groupmod:修改组

  groupdel:删除组

  gpasswd:修改组密码

  newgrp:临时切换组

  groupmems:更改和查看组成员

  groups:查看用户组关系

 

1.2用户管理

linux中每个用户是通过UIDuser identifie)来唯一标识的。

  管理员UIDroot - 0

  普通用户UID1-60000自动分配

      系统用户:对守护进程获取资源进行权限分配

        1-499centos6版本以前),1-999centos7版本之后)

      登录用户:给用户进行交互式登录使用

        500+centos6版本以前),1000+centos7版本之后)

 

useradd命令 - 可以创建新的Linux用户

         #格式
         useradd [option] LOGIN
         #常用选项
         -u:UID
         -o:配合-u选项,不检查UID的唯一性
         -g GID:指明用户所属基本组
         -c "comment":用户注释信息
         -d HOME_DIR:以指定路径为家目录
         -s SHELL:指明用户默认shell程序
         -G GROUP:为用户指明附加组,组须事先存在
         -N:不创建私用组做主组,使用users组做主组
         -r:创建系统用户
         -m:创建家目录,用于系统用户
         -M:不创建家目录,用于非系统用户
         -p:指定密码


usermod命令 - 可以修改用户属性

         #格式
         usermod [option] LOGIN


userdel - 删除Linux用户

         userdel [option]... LOGIN
         #常见选项
         -f,--force  强制
         -r,--remove 删除用户家目录和邮箱


id - 查看用户的UIDGID信息

         id [option]... [user]
         #常见选项
         -u:显示UID
         -g:显示GID
         -G:显示用户所属的组ID
         -n:显示名称,需配合ugG使用


su - switch user:可以切换用户身份,并且以指定用户的身份执行命令

         #格式
         su [option...] [-] [user [args..]]
         #常见选项
         -l,--login   su -l username,相当于su - username
         -c,--command <command> 把一个简单命令传给shell


切换用户的方式:

         su username:非登录模式切换,即不会读取目标用户的配置文件,不改变当前工作目录,为不完全切换

         su - username:登录模式切换,会读取目标用户的配置文件,切换至自己家目录,即完全切换

 

passwd - 可以修改用户密码 

 #格式
         passwd [options] usename
         #常用选项
         -d:删除指定用户密码
         -l:锁定指定用户
         -u:解锁指定用户
         -e:强制用户下次登录修改密码
         -f:强制操作
         -n mindays
         -x maxdays
         -w warndays
         -i inactivedays:非活动期限
         --stdin:从标准输入接收用户密码


用户相关命令:

         chfn:指定个人信息

         chsh:指定shell

         finger:查看用户个人信息

 

2、用户权限管理

     2.1 文件权限

          常用命令

         chown:设置文件的所有者

         chgrp:设置文件的属组

     2.1.1 文件权限介绍

         文件权限对象定义:

 

                   owner:属主,u

                   group:属组,g

                   other:其他,o

                   文件针对访问者的权限

 

                   rReadable 可读

                   wWriteable 可写

                   xExcutable 可执行

                   对文件的权限:

 

                   r 可使用文件查看工具,如,cat,获取内容

                   w 可修改其内容

                   x 可以把此文件提请内核启动为一个进程,即可以执行此文件

                   对目录的权限:

 

                   r 可以使用ls查看此目录中文件列表

                   w 可在此目录中创建文件,也可以删除此目录中的文件,而和此被删除的文件的权限无关

                   x 可以cd进入目录,可以使用ls -l看文件元数据,属于目录可访问的最小权限

                   X 只给目录x权限,不给无执行权限的文件x权限

                   数学法权限:

 

                   r 对应数字4

                   w 对应数字2

                   x 对应数字1

 

     2.1.2文件授权

 

     授权方式:

mode:who opt permission
who:u,g,o,a
opt:+,-,=
permission:r,w,x


     实例:文件授权

#给文件授予用户写执行,组写执行,其他读执行
[root@local ~]# chmod u+wx,g-r,o=rx file.txt
#给目录递归授权,文件属组为读写执行权限
[root@local ~]# chmod -R g+rwx /testdir
#数字授权法:给文件授权用户读写,组读,其他用户读权限
[root@local ~]# chmod 644 file.txt

      

        

     2.2 默认权限

     umask - 可以用来保留在创建文件权限

 

         实现方式:

 

         新建文件:默认权限 666-umask,如果所得结果某位存在执行权限(奇数),则将其权限+1,偶数不变

         新建目录:默认权限 777-umask

         非特权用户umask默认是002

         rootumask默认是022

 

         umask用法:

[root@local ~]# umask
#模式方式显示
[root@local ~]# umask -S
#输出可被调用
[root@local ~]# umask -p
#修改umask值
[root@local ~]# umask num

         持久保存umask

                   全局设置: /etc/bashrc

                   用户设置:~/.bashrc

 

     2.3 特殊权限

         r,w,x三种特殊权限:

         SUID

         SGID

         Sticky

         二进制的可执行文件上SUID特殊权限功能:

1. 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
2. 启动为进程后,其进程的属主为原程序文件的属主
3. SUID只对二进制可执行程序有效
4. SUID设置在目录上无意义

         二进制的可执行文件上的SGID权限功能:

1. 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
2. 启动为进程后,其进程的属组为原程序文件属组


         Sticky权限功能:       

1. 具有写权限的目录通常用户可以删除目录中的任何文件,无论该文件的权限或拥有权在目录设置Sticky位,只有文件的所有者或root可以删除该文件。
2. sticky设置在文件上无意义


         特殊权限用法:

                  

#给文件属主添加SUID权限
[root@local ~]# chmod u+s file.txt
#数字授权方式:给文件属主添加SUID权限
[root@local ~]# chmod 6xxx file.txt
#取消文件属主SUID权限
[root@local ~]# chmod u-s file.txt
 
#给文件属组添加SGID权限
[root@local ~]# chmod g+s file.txt
#数字授权方式:给文件属组添加SGID权限
[root@local ~]# chmod 2xxx file.txt
#取消文件属组SGID权限
[root@local ~]# chmod g-s file.txt

 #给文件其他用户添加Sticky权限
 [root@local ~]# chmod o+t dir
 #数字授权方式:给文件其他用户添加Ssticky权限
 [root@local ~]# chmod 1xxx dir
 #取消文件其他用户Sticky权限
 [root@local ~]# chomd o-t dir


         设定文件特殊属性:

[root@local ~]# chattr +i file.txt  #不能删除,改名,更改
[root@local ~]# chattr +a file.txt  #只能追加内容,不能删除,改名
[root@local ~]# lsattr              #显示特定属性


     2.4 文件访问控制列表ACL

         ACL - Access Control List,实现灵活的权限管理

         除了文件的所有者,所属组和其他人,可以对更多的用户设置权限

 

         ACL命令用法:

[root@local ~]# setfacl -m u:hong:- file.txt
[root@local ~]# getfacl file.txt


         ACL备份和还原

                   主要的文件操作命令,如cp,mv都支持ACL,只是cp命令需要加上-p参数。

                   tar等常见的备份工具是不会保留目录和文件的ACL信息

                  

3.相关概念及操作         

                  

         资源分派

         Authentication:认证,验证用户身份

         Authorization:授权,不同的用户设置不同权限

         Accouting | Audition:审计


 转自:https://www.cnblogs.com/hony625/p/15042496.html

最新回复 (0)
返回
零下一度
主题数
928
帖子数
0
注册排名
1