Linux用户权限

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

目录

1.Linux中的正常权限有读、写、执行权限

2.用户和组

2.1牵涉的相关命令

2.2创建用户牵涉到的文件

2.3用户和组的关系

2.4用户信息

2.5添加用户useradd命令

2.6更改和删除用户usermod和userdel命令

2.7passwd命令

2.8  group操作groupadd和groupmod以及groupdel等

2.9 其他相关命令

3.修改用户权限的相关命令

3.1.chmod命令

3.2.chown命令

3.3.chgrp命令

3.4可以执行的用户

3.5权限掩码umask

 4.Linux中的一些文件及其作用

5.文件或目录的隐藏属性

6.文件的特别权限

7.ACL

8.sudo授权


1.Linux中的正常权限有读、写、执行权限

文件的正常权限
文件的读、写、执行权限

        读 read——》允许查看文件的内容包括的命令cat、vim、grep、head、tail、more、less等          --r

        写 write——》允许修改文件内容包括的命令vim、>>、>重定向      --w

        执行 execute——》运行脚本里的命令 ./a.sh(相对路径)、/lianxi/a.sh(绝对路径) 直接运行文件需要给脚本文件授予可执行权限.          --x

文件夹的读、写、执行权限

        读 read——》可以显示目录列表包括的命令ls        --r

        写 write——》允许在目录中创建、移动等包括的命令cp、mv、rm、vim、touch、mkdir等         --w

        执行 execute——》允许切换目录包括的命令cd                --x

归属所有权

        文件拥有者owner拥有该文件或目录的用户账号   -- user --u

        属组group拥有该文件或目录的组账号   --group --g

        其他人others除了属主和属组的其他人   --others --o

普通的文件夹给rx权限家目录的权限非常严格w权限也很重要

普通用户可以在自己的家目录和/tmp目录下新建文件夹

[root@scchen1 lianxi]# ll         //使用ll命令查看权限

drwxr-xr-x 2 root root      4096 1月  14 21:48 sc

drwxr-xr-x 的意思为

        第一个字符为文件类型

                - 普通文件

                d目录文件

                l链接文件

                s表示socket文件          

                c字符设备文件 character

                b块设备文件 block 磁盘设备

                ppipe管道文件

        rwx:拥有者权限

        r-x:属主权限

        r-x:其他人权限

2.用户和组

2.1牵涉的相关命令

id(查看用户信息)、useradd(新建新用户)、groupadd(新建组)、userdel(删除用户)、usermod(更改用户信息)、su(切换登录用户)、passwd(创建用户密码)

用户和组     

        每个用户有一个唯一的UID每个组也有一个唯一的GID

        一个用户可以属于不同组
        一个组可以有不同用户        //注多对多的关系

        用户和组 --> 权限资源管控
        用户加入组就可以有这个组的权限
        默认情况下创建用户会添加一个和用户同名的组

[root@scchen1 ~]# useradd sanchuang
[root@scchen1 ~]# groupadd sc
[root@scchen1 ~]# id sanchuang
uid=1028(sanchuang) gid=1029(sanchuang) 组=1029(sanchuang)
[root@scchen1 ~]# usermod sanchuang -g sc
[root@scchen1 ~]# id sanchuang
uid=1028(sanchuang) gid=1030(sc) 组=1030(sc)
[root@scchen1 ~]# passwd sanchuang
更改用户 sanchuang 的密码 。
新的 密码
无效的密码 密码少于 8 个字符
重新输入新的 密码
passwd所有的身份验证令牌已经成功更新。
[root@scchen1 ~]# su - sanchuang
#####################
[sanchuang@scchen1 ~]$ 

2.2创建用户牵涉到的文件

账户信息相关文件

  • /etc/passwd ——〉存放用户相关信息的
  • /etc/shadow ——〉存放用户密码
  • /etc/passwd- 和 /etc/shadow- 这是/etc/passwd 和 /etc/shadow的备份文件总是比原文件少一次操作

组相关文件

  • /etc/group ——〉存放组信息的
  • /etc/gshadow ——〉存放组密码的
  • /etc/group- 和 /etc/gshadow- 这是/etc/group 和 /etc/gshadow的备份文件

用户环境默认设置

  • 创建用户时会拷贝/etc/skel/下的文件到用户的家目录
    • 用户家目录下一开始就会存在
      • .bash_logout   用户退出登录时执行
      • .bash_profile  用户登录时执行,一般做用户个性化环境配置
      • .bashrc  进入新bash环境时执行,一般做用户个性化环境配置
      • 以上这几个文件是跟用户环境默认设置相关的文件
    • .bash_history:  记录存放上次注销前使用的历史命令
      该文件不是用户一开始建好就有的得使用该用户输入过命令后才会产生.bash_history
    • 下面这两个文件对所有用户都生效
      • /etc/bashrc        # 系统全局环境配置文件
      • /etc/profile    # 系统全局环境配置文件
    • # 总结
      • /etc/目录下的环境配置修改属于全局配置
      • 家目录下的环境配置修改属于个人用户配置
[sc94@zabbix-agent-nginx ~]$ vim .bash_profile 
#在这个文件里添加"echo this is sc94 .bash_profile"

[sc94@zabbix-agent-nginx ~]$ vim .bashrc
#在这个文件里添加"echo this is sc94 .bashrc"
[sc94@zabbix-agent-nginx ~]$ vim .bash_logout
#在这个文件里添加"echo this is sc94 .bash_Logout"


[sc94@zabbix-agent-nginx ~]$ 登出
this is sc94 .bash_Logout
[root@zabbix-agent-nginx ~]# su - sc94
上一次登录二 5月 17 16:21:49 CST 2022pts/0 上
this is sc94 .bashrc
this is sc94 .bash_profile
[sc94@zabbix-agent-nginx ~]$ less .bash_profile
[sc94@zabbix-agent-nginx ~]$ bash
this is sc94 .bashrc
[sc94@zabbix-agent-nginx ~]$ exit

登陆的时候
    .bash_profile
    ~/.bash_profile --> ~/.bashrc -->/etc/bashrc

进入新bash环境
    ~/.bashrc  ---> /etc/bashrc

 用户的家目录

  • 默认情况下会在/home目录下创建一个同名文件夹

用户默认属性设置文件

  • /etc/login.defs    //用来保存用户的账户基本信息

邮件目录

  • /var/spool/mail/ 下创建一个同名的文件
    • Linux下发送邮件
      • [root@xieshan ~]# echo "this is test"|mail -s "test" 177360xxxx@qq.com

/etc/passwd 文件详解

[root@scchen1 ~]# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

sanchuang:x:1028:1030::/home/sanchuang:/bin/bash

        使用冒号:分隔

        字段1:用户名

        字段2:密码占位符通常为"x"或者"*"因为/etc/passwd这个文件谁都可以读所以真正的密码存放在/etc/shadow文件

        字段3:用户id

        字段4:用户的属组的id主要组

        字段5:用户描述信息新建的用户没有设置的话一般没有

        字段6:家目录是家目录的绝对路径

        字段7:登陆shell的信息

/etc/shadow文件详解

        用于保存密码字串、密码有效期等信息每一行对应一个用户的密码记录

[root@scchen1 ~]# cat /etc/shadow
root:$6$azLRpIMNFP/SHEb$Okwvoq0USKS1DkhFB1yazdjP9P4S0YwVn3e1su5ukX78wYDivXav3MhsIUsrWXGmDdQD0hqv55xu3OSLxfZHW/:18854:0:99999:7:::
bin:*:18353:0:99999:7:::
sanchuang:$6$n0W9hCUh$ksRWmuhFpASSVn1f1.HpBR037nEdeg.1pIMbu7CWHgBvuDA5NmEGxl06qIJzVRudQV1fBC8YP84QVJxwyh2Sy1:19063:0:99999:7:::

        字段1用户帐号的名称
        字段2加密的密码字串信息
        字段3上次修改密码的时间
        字段4密码的最短有效天数默认值为0
        字段5密码的最长有效天数默认值为99999
        字段6提前多少天警告用户口令将过期默认值为7
        字段7在密码过期之后多少天禁用此用户
        字段8帐号失效时间默认值为空
        字段9保留字段未使用

/etc/group文件详解

[root@xieshan lianxi]# cat /etc/group
sanchuang12:x:1029:
sc100:x:1030:sc99
sc99:x:1031:

        字段1:组名

        字段2:密码占位符--真正的密码存放在gshadow里面

        字段3:组idGID

        字段4:附属组的组成员

2.3用户和组的关系

        每个用户有一个唯一的UID

        每个组也有一个唯一的GID

        多个用户可以属于同一个组一个用户也可以属于多个组多对多的关系

2.4用户信息

用户账户

        超级用户  root最高权限

        程序用户

        普通用户

UID (User Identity用户标识号

        超级用户 root的UID为0

        程序用户的UID为1-999

                1201系统安装好就有的用户——》系统用户程序用户作用就是用来启动或者登陆某个程序

                201999自己新建的系统用户

        普通用户的UID大于等于1000

                100060000自己新建的用户

2.5添加用户useradd命令

·格式useradd [选项]… 用户名
常用命令选项
·-u指定 UID 标记号
·-d指定宿主目录缺省为 /home/用户名
·-e指定帐号失效时间
·-g指定用户的基本组名或GID号
·-G指定用户的附加组名或GID号
·-M不为用户建立并初始化宿主目录
·-s指定用户的登录Shell
·-c用户注释描述信息
·-r: 新建系统用户不会有新建家目录

#注每次新建用户uid都会在上一个用户uid基础上+1默认新建用户从1001开始

#注adduser命令跟useradd的用法差不多但是默认不会给用户创建家目录


Shell设置
/bin/bash # 注系统默认用户的shell环境信息 --> 正常使用的shell
/bin/sync # 注将内存里的缓存刷新到磁盘 --> 类似于Python中fp.flush()
/sbin/halt # 注登陆就关机
/sbin/nologin # 注用户不能登录ssh和su都不能登陆
/sbin/shutdown # 注登陆就关机


示例 -s /sbin/nologin

[root@scchen1 ~]# useradd -s /sbin/nologin sanchuang2
[root@scchen1 ~]# echo 123456 |passwd sanchuang2 --stdin
更改用户 sanchuang2 的密码 。
passwd所有的身份验证令牌已经成功更新。
[root@scchen1 ~]# ssh sanchuang2@39.108.111.241  //使用ssh登陆本机的sanchuang2用户
The authenticity of host '39.108.111.241 (39.108.111.241)' can't be established.
ECDSA key fingerprint is SHA256:4BIU2tmOP3Qv5VLGDR4cNV8MeJnDnBkDVVvXcL2wzW4.
ECDSA key fingerprint is MD5:a5:ec:e6:4e:7e:6c:e4:4d:a8:4a:b0:6a:b8:a5:97:2f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '39.108.111.241' (ECDSA) to the list of known hosts.
sanchuang2@39.108.111.241's password: 

Welcome to Alibaba Cloud Elastic Compute Service !

This account is currently not available.      //提示用户不可达
Connection to 39.108.111.241 closed.
[root@scchen1 ~]# su - sanchuang2        //无法切换用户
上一次登录六 3月 12 10:31:33 CST 2022从 39.108.111.241pts/1 上
This account is currently not available.         
[root@scchen1 ~]# usermod -s /bin/bash sanchuang2。   //更改用户的shell
[root@scchen1 ~]# su - sanchuang2     //可以登录了
上一次登录六 3月 12 10:31:54 CST 2022pts/0 上
#####################
[sanchuang2@scchen1 ~]$ 

2.6更改和删除用户usermod和userdel命令

usermod命令
格式usermod [选项]… 用户名
常用命令选项
·-l更改用户帐号的登录名称
·-L锁定用户账户  ---锁定账户的实质就是更改用户的密码在密码前面加上了一个
·-U解锁用户账户
·以下选项与useradd命令中的含义相同
-u、-d、-e、-g、-G、-s

·-u指定 UID 标记号
·-d指定宿主目录缺省为 /home/用户名
·-e指定帐号失效时间
·-g指定用户的基本组名或GID号
·-G指定用户的附加组名或GID号
·-s指定用户的登录Shell

userdel命令
·格式userdel [-r] 用户名
·添加 -r 选项时表示连用户的宿主目录一并删除 # 注建议接上

[root@scchen1 ~]# useradd exe1
[root@scchen1 ~]# ls -ld /home/exe1
drwx------ 2 exe1 exe1 4096 3月  12 10:37 /home/exe1
[root@scchen1 ~]# userdel -r exe1
[root@scchen1 ~]# ls -ld /home/exe1
ls: 无法访问/home/exe1: 没有那个文件或目录

2.7passwd命令


·格式passwd [选项]… 用户名
常用命令选项
·-d清空用户的密码使之无需密码即可登录
·-l锁定用户帐号---锁定账户的实质就是更改用户的密码在密码前面加上两个
·-S查看用户帐号的状态是否被锁定
·-u解锁用户帐号
·–stdin接收别的命令stdout做为stdin标准输入设置密码

root用户可以修改所有用户密码不要求复杂性
普通用户只能改自己的密码要求复杂性
 

[root@scchen1 ~]# passwd -d sanchuang2    //清空sanchuang2的密码
清除用户的密码 sanchuang2
passwd: 操作成功
[root@scchen1 ~]# useradd sanchuang3   //未设置密码
[root@scchen1 ~]# less /etc/shadow
sanchuang2::19063:0:99999:7:::
sanchuang3:!!:19063:0:99999:7:::
[root@xieshan selinux]# echo "123456"|passwd sc99 --stdin    //非交互方式设置密码
更改用户 sc99 的密码 。
passwd所有的身份验证令牌已经成功更新。

2.8  group操作groupadd和groupmod以及groupdel等

groupadd 命令   #新建组

格式:groupadd [-g GID] 组账号名

groupdel 命令   #删除组

groupmod命令   #修改组

格式:groupadd -g/-n 组账号名

        -g  修改组id

        -n   修改组名

newgrp        # 修改有效组
用户必须是组的成员才能切换有效组
有效组:当前用户新建文件或者文件夹的时候默认使用gid对应的组就是有效组

[root@xieshan selinux]# groupadd sanle
[root@xieshan selinux]# groupadd sanle2
[root@xieshan selinux]# useradd -g sanle -G sanle2 sc92
[root@xieshan selinux]# su - sc92
[sc92@xieshan ~]$ touch a
[sc92@xieshan ~]$ ls -al
总用量 16
drwx------   2 sc92 sanle   81 5月  17 16:22 .
drwxr-xr-x. 38 root root  4096 5月  17 16:21 ..
-rw-r--r--   1 sc92 sanle    0 5月  17 16:22 a
-rw-r--r--   1 sc92 sanle    0 5月  16 15:59 aa
-rw-r--r--   1 sc92 sanle   18 10月 31 2018 .bash_logout
-rw-r--r--   1 sc92 sanle  193 10月 31 2018 .bash_profile
-rw-r--r--   1 sc92 sanle  231 10月 31 2018 .bashrc
[sc92@xieshan ~]$ id sc92  #用户在组里面才能更改这个组为有效组
uid=2003(sc92) gid=2002(sanle) 组=2002(sanle),2003(sanle2)
[sc92@xieshan ~]$ newgrp sanle2
[sc92@xieshan ~]$ touch bb
[sc92@xieshan ~]$ ls -al
总用量 16
drwx------   2 sc92 sanle    91 5月  17 16:24 .
drwxr-xr-x. 38 root root   4096 5月  17 16:21 ..
-rw-r--r--   1 sc92 sanle     0 5月  17 16:22 a
-rw-r--r--   1 sc92 sanle     0 5月  16 15:59 aa
-rw-r--r--   1 sc92 sanle    18 10月 31 2018 .bash_logout
-rw-r--r--   1 sc92 sanle   193 10月 31 2018 .bash_profile
-rw-r--r--   1 sc92 sanle   231 10月 31 2018 .bashrc
-rw-r--r--   1 sc92 sanle2    0 5月  17 16:24 bb
[sc92@xieshan ~]$ newgrp sc99     #sc92不属于组sc99所以无法更改
密码 
无效的密码。

gpasswd        # 管理组

groups        # 查询用户所在的组

2.9 其他相关命令

w			# 查看当前系统中已经登录的用户

who			# 查看当前系统中已经登录的用户,查询的信息比w简单

users		# 查看当前系统中已经登录的用户

last		# 查询当前已经登录和过去登录的用户信息

lastlog		# 查看系统中所有用户的最后一次登录时间、登录端口和来源IP

who am i	# 显示当前登录时用的用户名尽管切换了多个用户

whoami		# 显示当前用户的用户名

tty			# 查看登录的终端号

3.修改用户权限的相关命令

3.1.chmod命令

普通用户只能改变自己的文件或文件夹权限

root用户可以更改所有用户的权限

chmod命令
格式1chmod [ugoa] [±=] [rwx] 文件或目录…
·u、g、o、a 分别表示
u属主、g属组、o其他用户、a所有用户
·+、-、= 分别表示
+增加、-去除、=设置权限
·rwx
对应的权限字符

常用命令选项
·-R递归修改指定目录下所有文件、子目录的权限
 

[root@scchen1 lianxi]# vim men_test.sh
[root@scchen1 lianxi]# ll men_test.sh 
-rw-r--r-- 1 root root 12 3月  12 14:37 men_test.sh
[root@scchen1 lianxi]# chmod u+x men_test.sh        //给user属主加上执行权限
[root@scchen1 lianxi]# ls -al men_test.sh          //可执行文件是绿色的
-rwxr--r-- 1 root root 12 3月  12 14:37 men_test.sh
[root@scchen1 lianxi]# ./men_test.sh        //添加了可执行权限后可以使用./文件名的方式执行
abc
[root@scchen1 lianxi]# chmod a+x men_test.sh  -R     //注-R递归把该目录和该目录下的所有子文件都去除可执行权限
[root@scchen1 lianxi]# ls -al men_test.sh 
-rwxr-xr-x 1 root root 12 3月  12 14:37 men_test.sh

chmod命令
格式2chmod nnn 文件或目录… # 注nnn表示3位八进制数
权限项 读 写 执行 读 写 执行 读 写 执行
字符表示 r w x r w x r w x
数字表示 4 2 1 4 2 1 4 2 1
权限分配 文件所有者 文件所属组 其他用户
chmod命令

常用命令选项
·-R递归修改指定目录下所有文件、子目录的权限

[root@scchen1 lianxi]# chmod 777 sc   //给sc文件的属主、属组、其他人都有读写执行权限
[root@scchen1 lianxi]# chmod 700 sc   //给sc文件的属主有读写执行权限
[root@scchen1 lianxi]# mkdir sanchuang
[root@scchen1 lianxi]# ls -ld sanchuang
drwxr-xr-x 2 root root 4096 3月  12 14:43 sanchuang
[root@scchen1 lianxi]# chmod 777 /lianxi/sanchuang      //都有读写执行
[root@scchen1 lianxi]# ls -ld sanchuang
drwxrwxrwx 2 root root 4096 3月  12 14:43 sanchuang

3.2.chown命令

chown命令         # 注用来改变文件的属主和属组
·必须是root       # 注chown 只能root去更改
·用户和组必须存在
·格式

        chown 属主 文件
        chown :属组 文件
        chown 属主:属组 文件

常用选项-R递归修改指定目录下所有文件、子目录的归属chmod跟chown都是一样的

[root@sc-xieshan lianxi]# chown tangseng xiaotang
[root@sc-xieshan lianxi]# chown :xiyouji xiaotang -R
[root@sc-xieshan lianxi]# chown song:song xiaotang

3.3.chgrp命令

chgrp命令 # 注修改属组不常用
·格式 chgrp 属组 文件
·必须是root或者是文件的所有者
·必须是新组的成员
常用命令选项
·-R递归修改指定目录下所有文件、子目录的归属

 [root@sc-xieshan lianxi]# chgrp hongloumeng sc   //修改sc文件属于hongloumeng组

3.4可以执行的用户

可以执行的用户
#注chgrp修改属组 文件所有者 必须是想要修改的组里的组成员

执行cp命令复制的时候只有root用户可以将文件的权限复制过去普通用户无法直接复制文件的权限。但是普通用户使用cp -a这个选项可以将文件的属性权限、时间、用户、组一起复制过去

3.5权限掩码umask

在内核级别文件的初始权限666文件夹的初始权限777

用umask命令控制默认权限临时有效

不推荐修改系统默认的umask

id  -gn   获取当前用户组名

id  -un  获取当前用户名

[root@xieshan lianxi]# umask         //用户权限=777-022=755

0022

[root@xieshan /]# vim /etc/profile //可以查看系统的umask值
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi

 4.Linux中的一些文件及其作用

/tmp 是存放临时文件的任何的用户创建的进程都可以在此处新建文件和文件夹

/root 是root用户的家目录

/home 是普通用户的家目录

/bin 存放可执行二进制程序 binary

/usr 存放Linux系统资源各种程序默认会安装到这个文件夹里 unix system resource

/etc 存放各种配置文件/etc/passwd /etc/shadow /etc/group

/proc  伪文件系统Linux 内核提供了一种通过 /proc 文件系统在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统它只存在内存当中而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

5.文件或目录的隐藏属性

chattr命令设置文件的隐藏属性
·格式chattr [±=] [ai] 文件或目录 # 注+、-、= 分别表示 增加、去除、设置参数
常用命令选项
·-R递归修改
·-a可以增加文件内容但不能修改和删除——》只增不减
·-i锁定保护文件——》不能动文件或者文件夹里的内容不能增加和删除不能修改

lsattr命令查看文件的隐藏属性
·格式lsattr [Rda] 文件或目录
常用命令选项
·-R递归修改
·-d查看目录

#注普通用户设置不了文件的隐藏属性

[root@scchen1 lianxi]# mkdir local
[root@scchen1 lianxi]# lsattr local -d
-------------e-- local
[root@scchen1 lianxi]# chattr +I local     //不能删、不能写、不能移动
[root@scchen1 lianxi]# mv local /lianxi/sc
mv: 无法将"local" 移动至"/lianxi/sc/local": 不允许的操作
[root@scchen1 lianxi]# ls -al local
总用量 8
drwxr-xr-x 2 root root 4096 3月  12 15:03 .
drwxr-xr-x 7 root root 4096 3月  12 15:03 ..
[root@scchen1 lianxi]# lsattr local -d
----i--------e-- local            //多了一个-I属性
[root@scchen1 lianxi]# chattr -i local
[root@scchen1 lianxi]# lsattr local -d
-------------e-- local
[root@scchen1 lianxi]# touch hosts
[root@scchen1 lianxi]# chattr +a hosts   //只增不减
[root@scchen1 lianxi]# lsattr hosts
-----a-------e-- hosts
[root@scchen1 lianxi]# vim hosts     //不可以修改
[root@scchen1 lianxi]# echo "aaa" >>hosts   //可以追加
[root@scchen1 lianxi]# cat hosts
aaa
[root@scchen1 lianxi]# rm -rf hosts   //不可以删除
rm: 无法删除"hosts": 不允许的操作
[root@scchen1 lianxi]# 
[root@scchen1 lianxi]# chattr +i /etc/passwd
[root@scchen1 lianxi]# lsattr /etc/passwd
----i--------e-- /etc/passwd
[root@scchen1 lianxi]# useradd sanchuang6     //设置了隐藏属性无法新建用户
useradd无法打开 /etc/passwd
[root@scchen1 lianxi]# chattr -i /etc/passwd
[root@scchen1 lianxi]# useradd sanchuang6
[root@scchen1 lianxi]# 

6.文件的特别权限

文件的特别权限

SET位权限
主要用途
·为可执行有 x 权限的文件设置权限字符为“s” # 注以前的x位变成s位
·其他用户执行该文件时将拥有属主或属组用户的权限
SET位权限类型
·SUID表示对属主用户增加SET位权限
·SGID表示对属组内的用户增加SET位权限

suid权限普通用户在执行命令的时候会以命令的拥有者的身份去执行。

Linux系统默认所有的命令都是root的。如果不管控的话会导致系统权限泛滥出现安全问题

#注用在可执行文件
 

[root@xieshan bin]# ll mkdir
-rwxr-xr-x. 1 root root 79864 10月 31 2018 mkdir
[root@xieshan bin]# chmod u+s mkdir
[root@xieshan bin]# ll mkdir
-rwsr-xr-x. 1 root root 79864 10月 31 2018 mkdir
//sgid权限普通用户在执行命令的时候会以属组的身份去执行。
[root@xieshan bin]# chmod g+s mkdir
//suid和sgid一般用在可执行命令上

粘滞位权限(Sticky)为公共目录设置权限字符为“t"。用户不能删除该目录中其他用户的文件一般用在文件夹上

使用权限数字

chmod mnnn 可执行文件

m为4对应suidm为2对应sgidm为1对应粘滞位可叠加7777

chmod o+t 可执行文件

[root@xieshan bin]# ls -ld /tmp
drwxrwxrwt. 12 root root 4096 2月  28 15:21 /tmp
[root@xieshan lianxi]# ll -d zhang.txt
-rw-r--r-T. 1 root root 0 2月  24 11:13 zhang.txt
[root@xieshan lianxi]# chmod o+t /tmp
[root@xieshan lianxi]# 

7.ACL

ACL:Access Control List)一个文件/目录的访问控制列表可以针对任意指定的用户/组使用权限字符分配rwx权限

设置ACLsetfacl指令 setfacl选项 规则 文件

常用选项

-m新增或修改ACL中的规则

-b删除所有ACL规则

-x删除指定的ACL规则

常用规则
格式类型:特定的用户或组:权限
user:(uid/name):(perms)        指定某位使用者的权限
group:(gid/name):(perms)     指定某一群组的权限
other::(perms)                        指定其它使用者的权限
mask::(perms)                        设定有效的最大权限
注意
user、group、other、mask简写为u , g , o , m

ACL类型
存取型ACL(Access ACL)文件或目录
预设型ACL(Default ACL)只能对目录
预设型ACL(Default ACL)
格式setfacl –m default:类型:特定的用户或组:权限
               setfacl –m d:类型:特定的用户或组:权限
设置了预设型ACL的目录其下的所有文件或者子目录就都具有了主目录的ACL权限并且子目录也同样有预设的ACl权限

查看ACLgetfacl指令 getfacl 文件

[root@xieshan 3.1]# setfacl -m u:song:rwx test/      //单独给用户设置权限
[root@xieshan 3.1]# ll
总用量 0
drwxrwxr-x+ 2 root root 6 3月   1 09:34 test      //是对原来权限的扩展
[root@xieshan 3.1]# getfacl test
# file: test
# owner: root
# group: root
user::rwx
user:song:rwx
group::r-x
mask::rwx
other::r-x
[root@xieshan 3.1]# setfacl -m g:xiyouji:rwx test       //单独给组设置权限
[root@xieshan 3.1]# getfacl test
# file: test
# owner: root
# group: root
user::rwx
user:song:rwx
group::r-x
group:xiyouji:rwx
mask::rwx
other::r-x
[root@xieshan 3.1]# setfacl -m u:song:rwx,g:xiyouji:rwx test/
//一个用户属于某个组可以继承这个组的权限
//拒绝权限高于一切——》针对用户    单独设置黑名单
//一个组允许一个组拒绝——》允许

[root@zabbix-agent-nginx lianxi]# setfacl -m m::r  hello.txt
[root@zabbix-agent-nginx lianxi]# getfacl hello.txt
# file: hello.txt
# owner: root
# group: root
user::rwx
user:sc98:rw-			#effective:r--   #即使sc98的权限是rw但是mask是r所以sc98的最大权限就是r
group::---
group:sanle:rw-			#effective:r--
mask::r--
other::r--
[root@zabbix-agent-nginx lianxi]# setfacl -m d:u:sc98:rwx acl
[root@zabbix-agent-nginx lianxi]# getfacl acl
# file: acl
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:sc98:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

[root@zabbix-agent-nginx lianxi]# cd acl
[root@zabbix-agent-nginx acl]# vim aa
[root@zabbix-agent-nginx acl]# touch aa
[root@zabbix-agent-nginx acl]# getfacl aa
# file: aa
# owner: root
# group: root
user::rw-
user:sc98:rwx			#effective:rw-
group::r-x			#effective:r--
mask::rw-
other::r--

8.sudo授权

sudo授权可以给组也可以给用户

Linux里root用户权限最大普通用户权限非常小sudo可以给普通用户授权

给普通用户或者组授权修改/etc/sudoers文件

有一个日志文件会记录下被授权者执行的所有命令/var/log/secure

        /var 存放可变化的文件 variable 可变的

        log 日志文件 是不停的记录程序发生的事情

                secure 是与Linux安全相关的日志登陆进入Linux、新建用户、设置密码

                messages 平时可以记录的日志默认都记录到messages

                boot.log 开机启动的过程中的日志

/var/log/audit   安全审计相关服务日志

   linux audit子系统是一个用于收集记录系统、内核、用户进程发生的行为事件的一种安全审计系统。该系统可以可靠地收集有关上任何与安全相关或与安全无关事件的信息它可以帮助跟踪在系统上执行过的一些操作。

   在内核里有内核审计模块记录系统中的各种动作和事件比如系统调用文件修改执行的程序系统登入登出和记录所有系统中所有的事件它的主要目的是方便管理员根据日记审计系统是否允许有异常是否有入侵等等说穿了就是把和系统安全有关的事件记录下来。

rsyslogd进程会记录能记录的各种消息都会记录一份到messages文件里

sudo的配置文件/etc/sudoers
编辑配置文件 可以使用vim 也可以使用visudo使用visudo不需要接文件名
推荐使用visudo去编辑/etc/sudoers它会检测语法

[root@xieshan var]# visudo
##      user    MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL  
#第一个ALL表示允许任何终端、机器访问sudo一般就表示本机
#第二个ALL表示sudo命令可以允许以任何用户身份去执行
#第三个ALL表示可以执行任何命令

sanle   ALL=(ALL)   ALL       #表示sanle用户可以在这台主机上执行任何用户的任何密码但是使用sudo执行时需要输入sanle用户的密码

sanle11   ALL=(ALL)   NOPASSWD:ALL   #表示sanle用户可以在这台主机上执行任何用户的任何命令无需输入sanle11的密码

%sanchuang05  ALL=(ALL) NOPASSWD:ALL
#表示sanchuang05这个组的用户在这台主机上可以执行任何用户的任何命令无需输入密码
 
 wy      ALL=(ALL)   /bin/chown,/bin/passwd #表示wy用户在这台主机上拥有chown,passwd命令执行授权命令路径写绝对路径。

 [sc94@zabbix-agent-nginx ~]$ sudo -l
匹配 %2$s 上 %1$s 的默认条目
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
    env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

用户 sc94 可以在 zabbix-agent-nginx 上运行以下命令
    (ALL) NOPASSWD: /usr/bin/yum
[sc98@zabbix-agent-nginx ~]$ sudo -i    #切换到root
[root@zabbix-agent-nginx ~]# 登出
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux