linux用户权限 -> 系统特殊权限

set_uid

运行一个命令的时候,相当于这个命令的所有者,而不是执行者的身份。

suid的授权方法

suid    4000 权限字符s(S),用户位置上的x位上设置。
授权方法:chmod 4755 passwd
        chmod  u+s  passwd

suid的作用

1.让普通用户拥有二进制文件的所属主权限,二进制文件需要有执行权限。
2.如果设置的二进制文件没有执行权限,那么suid的权限显示就是大S。
3.特殊权限suid仅对二进制可执行程序有效,其他文件或目录则无效。
4.如果普通用户需要操作没有权限的文件,为对应的命令赋予Suid权限。
注意: suid双刃剑, 是一个比较危险的功能, 对系统安全有一定的威胁。

set_gid

运行一个命令的时候,相当于是这个命令所在的用户组

sgid授权方法

suid    2000 权限字符s(S),取决于属组位置上的x。
授权方法:chmod 2755  directory
        chmod  g+s  directory

sgid作用

1.针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。
2.当某个目录设置了sgid后,在该目录中新建的文件不在是创建该文件的默认所属组
3.使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

sticky粘滞位

sticky对目录有写权限的用户仅仅可以删除目录里属于自己的文件,不能删除其他用户的文件
系统中存在的/tmp目录是经典的粘滞位目录,谁都有写权限,因此安全成问题,常常是木马第一手跳板。

sticky授权方法

粘滞位     1000 权限字符t(T),其他用户位的x位上设置。
授权方法:chmod 1755  /tmp
         chmod o+t /tmp

sticky作用

1.让多个用户都具有写权限的目录,并让每个用户只能删自己的文件。
2.特殊sticky目录表现在others的x位,用小t表示,如果没有执行权限是T
3.一个目录即使它的权限为"777"如果是设置了粘滞位,除了目录的属主和"root"用户有权限删除,除此之外其他用户都不允许删除该目录。

查看隐藏属性

[[email protected] ~]# lsattr /tmp
-------------e- /tmp/100m
其中e为默认值

修改隐藏属性chattr

1)    使用chattr修改
+增加,-减少,=设置仅有

2)    相关参数如下
a    只允许向文件中增加内容(包含root用户)例:chattr +a a.txt
i    不允许修改文件内容(包含root用户)    例:chattr +i a.txt
A    文件或目录每次被访问不会修改atime。可避免I/O过度访问磁盘
s    若删除,则从磁盘空间删除
c    对文件自动压缩,读取是自动解压
u    若删除,还在磁盘中,可以恢复文件

a:让文件或目录仅可追加内容
i:不得任意更动文件或目录

//创建文件并设置属性
[[email protected] ~]# touch file_a file_i
[[email protected] ~]# lsattr file_a file_i
---------------- file_a
---------------- file_i

//设置属性
[[email protected] ~]# chattr +a file_a
[[email protected] ~]# chattr +i file_i
[[email protected] ~]# lsattr file_a file_i
-----a---------- file_a
----i----------- file_i

//a权限, 无法覆盖写入和删除文件
[[email protected] ~]# echo "aa" > file_a
bash: file_a: Operation not permitted
[[email protected] ~]# rm -f file_a
rm: cannot remove ‘file_a’: Operation not permitted

//a权限, 只能追加, 适用于日志文件
[[email protected] ~]# echo "aa" >> file_a

//i权限, 无法写入, 无法删除
[[email protected] ~]# echo "i" > file_i
bash: file_i: Permission denied
[[email protected] ~]# echo "i" >> file_i
bash: file_i: Permission denied
[[email protected] ~]# rm -f  file_i
rm: cannot remove ‘file_i’: Operation not permitted

//解除限制
[[email protected] ~]# chattr -a file100
[[email protected] ~]# chattr -i file200

进程掩码umask

umask用于控制系统权限, 默认系统权限较大, 需要靠Umask来变更权限
默认新建文件,系统默认最大权限为666
默认新建目录,系统默认最大权限是777

我们在新建文件和目录的默认权限会受到umask的影响, umask表示要减掉的权限。
创建目录权限值为777-umask
创建普通文件权限值为644-umask

umask涉及到的相关文件/etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile

注意umask影响的范围
shell (vim,touch) --umask--> 新文件或目录权限
vsftpd --umask--> 新文件或目录权限
samba --umask--> 新文件或目录权限
useradd --umask--> 用户 HOME

1.假设umask值为:022(所有位为偶数)
//文件的起始权限值
6 6 6  -  0 2 2  = 6 4 4 

2.假设umask值为:045(其他用户组位为奇数)
//计算出来的权限。由于umask的最后一位数字是5,所以,在其他用户组位再加1。
6 6 6  -   0 4 5 = 6 2 1

3.默认目录权限计算方法
7 7 7  -  0 2 2 = 7 5 5

umask 044    //umask所有位全为偶数时
示例:mkdir d044   //目录733
示例:touch f044   //文件622

umask 023    //umask值的部分或全部位为奇数时
示例:mkdir d023   //目录754
示例:touch f023   //文件644

umask 035    //umask值的所有位为奇数时
示例:mkdir d035   //目录742
示例:touch f035   //文件642
示例1: 在shell进程中创建文件
//查看当前用户的umask权限
[[email protected] ~]# umask
0022
[[email protected] ~]# touch file0022
[[email protected] ~]# mkdir dir0022
[[email protected] ~]# ll -d file0022  dir0022/
drwxr-xr-x 2 root root 6 Jan 24 09:02 dir0022/
-rw-r--r-- 1 root root 0 Jan 24 09:02 file0022
示例2: 修改shell umask值(临时生效)
[[email protected] ~]# umask 000
[[email protected] ~]# mkdir dir000
[[email protected] ~]# touch file000
[[email protected] ~]# ll -d dir000 file000
drwxrwxrwx 2 root root 6 Jan 24 09:04 dir000
-rw-rw-rw- 1 root root 0 Jan 24 09:04 file000
示例3: 修改shell umask值(永久生效, 强烈不建议修改)
[[email protected] ~]# vim /etc/profile
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi

//立即在当前 shell 中生效
[[email protected] ~]# source /etc/profile
示例4: 通过umask决定新建用户HOME目录的权限
[[email protected] ~]# vim /etc/login.defs
UMASK 077
[[email protected] ~]# useradd dba
[[email protected] ~]# ll -d /home/dba/
drwx------. 4 dba dba 4096 3 月 11 19:50 /home/dba/

[[email protected] ~]# vim /etc/login.defs
UMASK 000
[[email protected] ~]# useradd sa
[[email protected] ~]# ll -d /home/sa/
drwxrwxrwx. 4 sa sa 4096 3 月 11 19:53 /home/sa/

特殊权限练习题

创建三个用户, 分别为curlylarrymoe这些用户都是stooges组的成员。
这些用户帐号密码都为password
1.要求以上用户和组可以在/home/stooges目录里访问,创建,删除文件
2.其他用户一律不允许访问该目录
3.在该目录下新建的文件会自动属于stooges组拥有

//创建用户,组
useradd curly
useradd larry
useradd moe
groupadd stooges

//创建密码
echo "password" |passwd --stdin moe
echo "password" |passwd --stdin larry
echo "password" |passwd --stdin curry

//将用户加组
gpasswd -a larry stooges
gpasswd -a moe stooges
gpasswd -a curly stooges

//创建目录并配置权限
mkdir /home/stooges
chmod 770 /home/stooges
chown .stooges /home/stooges
chmod g+s /home/stooges

原文地址:https://www.cnblogs.com/tim1blog/p/9746553.html

时间: 2024-08-01 04:13:35

linux用户权限 -> 系统特殊权限的相关文章

LINUX用户、用户组及权限管理

LINUX用户.用户组及权限管理 一.LINUX权限管理 LINUX权限分为:r,w,x,读,写,可执行 对文件来说: r 可读,即可以使用类似cat等命令查看文件的内容 w 可写,可以编辑或删除此文件: x 可执行,exacutable,可以在命令提示符下当做命令提交给内核运行. 对于目录来说(默认有x权限): r 可以对此目录执行ls以列出内部的所有文件 w 可以在此目录中创建文件 x 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息. 文件 目录 r 可读,即可以使用类

linux用户、组和权限——学习笔记

linux用户.组和权限--学习笔记 1.linux用户user 2.linux组group 3.用户和组的配置文件 3.1.Passwd文件格式 3.2.shadow 文件格式 3.3.group文件格式 3.4.gshdow文件格式 4.用户和组管理命令 4.1.用户管理命令 4.2.组帐号维护命令 4.3.用户创建:useradd 4.4.小实验 4.5.用户属性修改 4.6.删除用户 4.7.查看用户相关的ID 信息 4.8.切换用户或以其他用户身份执行命令 4.9.设置密码 4.10.

Linux 用户,组,权限小练习

1.新建一个没有家目录的用户openstack 2.复制/etc/skel为/home/openstack 3.改变/home/openstack及其内部的文件的属主,属组均为openstack 4./home/openstack及其内部的文件,属组和其他用户没有任何访问权限 [[email protected] ~]# useradd -M openstack [[email protected] ~]# ls -l /home/openstack ls: /home/openstack: N

Linux用户、组和权限的概念

用户.组和权限 安全上下文(Security Context): 1.权限 权限定义的例子: 文件: tom和jerry同时运行/tmp/inittab.new tom(属主) tom(属组) TOM:     ls /tmp/inittab.newJerry:     ls /tmp/inittab.new只会运行Tom,因为进程的属主是Tom 用户的三个主要权限: r,w,x 文件:r:可读,可以使用类似cat等命令查看文件内容:w:可写,可以编辑或删除此文件:x:可执行,eXcutable

Linux用户、组和权限管理(一)

Linux是一个Multi-tasks(多任务). Multi-Users(多用户)的系统 每一个登陆者或使用者都有用户标识.密码(所谓3A) 所谓的3A: Authentication(验证机制) Authorization(授权机制) Audition(审计) 组的概念:用户组,用户容器:是为了便于用户权限分配 用户类别: 管理员:root 普通用户: 系统用户 登录用户 在linux系统中用户标识UserID,简称UID 用户标识使用的范围: 16bits二进制数字:0-65535(默认1

Linux用户、组、权限管理

linux 用户: linux用户主要分为:管理员和普通用户,普通用户又包含系统用户和登录用户.系统用户不需要登录系统,只为后台服务运行提供身份,并对守护进程获取资源进行权限分配,登录用户需要交互式登录. linux系统主要靠UID号来识别管理员和普通用户.在CentOS 6上,管理员的UID为0,普通用户的UID为1-65535,其中系统用户的UID为1-499,登录用户的UID为500-65535:在CentOS 7上,管理员的UID为0,普通用的UID 为1-65535,其中系统用户的UI

linux用户和组及权限管理

1.用户和组管理    资源分派:        Authentication:认证        Authorization:授权        Accouting:审计            Audition token, identity(username/password) Linux用户:Username/UID        管理员:root, 0        普通用户:1-65535            系统用户:1-499, 1-999                对守护进

Linux用户、组和权限

用户.组和权限 一:概念 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.由于安全需要,「用户管理」应运而生,以加以明确限制各个用户账户的权限. Linux支持用户组,用户组就是具有相同特征的用户的集合.一个组可以包含多个用户,每个用户也可以属于不同的组.用户组在Linux中扮演着重要的角色,方便管理员对用户进行集中管理. 在Linux中,有三种用户: Root 用户:也称为超级用户,对系统拥有至高无

Linux 用户、用户组及权限管理

一.Linux用户及用户组的基本概念 用户:用户是实现能够将有限的资源在多个使用者之间进行分配:. 用户组:用户组是指多个用户的集合,方便对一类需要同样权限的用户授权 Linux是多用户.多任务的操作系统. 多用户指:多人同时使用系统资源:多任务:同时运行多个进程 二.用户及用户组类别 1.用户:名称解析库 /etc/passwd a.管理员 root 用户标识(UID)为0 b.普通用户及系统用户 普通用户的用户标识(既UID): CentOS 5,6: 500+ CentOS 7: 1000