Linux文件属性

Linux文件属性

Linux中的文件都有三种属性
1 所有者
2 所属组
3 其他人

以boot文件举例来说

dr-xr-xr-x.   5 root root 4096 12月 14 09:44 boot

d代表目录
第一个r-x代表文件拥有者可具备的权限,第二个代表加入此用户组的账号的权限,第三个代表非本人且没有加入本用户组的其他账号的权限。注意这三个权限的位置不会改变,如果没有权限就会出现-号。
文件的三种权限分别为rwx代表读 写 执行

如何修改文件权限

chgrp:修改文件所属组权限

-R: 递归修改权限
把所属组为root的文件修改为xxx可写为 chgrp xxx 文件名

chown:修改文件所有者的权限

修改方法同chgrp

chmod:修改文件的权限

权限修改的方法有两种数字法和符号法
各权限数字对照表

r=4
w=2
x=1

各种身份的三个权限是需要累加的
当权限为[rwxrw-r–]时

owner=rwx=4+2+1=7
group=rw-=4+2=6
other=r--=4

如果我们要设置数字权限时
chmod 764 文件名

用户组管理命令

用户管理命令
useradd
usermod
userdel

组帐号维护命令
groupadd
groupmod
groupdel

用户创建

常见选项:
-u UID
-o 配合-u 选项,不检查UID的唯一性
-g GID 指明用户所属基本组,可为组名,也可以GID
-c "COMMENT“ 用户的注释信息
-d HOME_DIR 以指定的路径(不存在)为家目录
-s SHELL 指明用户的默认shell程序,可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,…] 为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r 创建系统用户 CentOS 6之前: ID<500,CentOS 7以后: ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户

范例:


useradd -r -u 48 -g apache -s /sbin/nologin -d /var/www -c "Apache" apache 

useradd 命令默认值设定由/etc/default/useradd定义


[root@centos8 ~]#cat /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes

用户属性修改

usermod

常见选项:
-u UID: 新UID
-g GID: 新主组
-G GROUP1[,GROUP2,…[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时
使用-a选项
-s SHELL:新的默认SHELL
-c ‘COMMENT’:新的注释信息
-d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
-l login_name: 新的名字
-L: lock指定用户,在/etc/shadow 密码栏的增加 !
-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限

删除用户

userdel

常见选项:
-f, --force 强制
-r, --remove 删除用户家目录和邮箱

查看用户相关的ID信息

id
常见选项:

-u: 显示UID
-g: 显示GID
-G: 显示用户所属的组的ID
-n: 显示名称,需配合ugG使用

切换用户或以其他用户身份执行命令

su

切换用户的方式:
su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
说明:root su至其他用户无须密码;非root用户切换时需要密码
换个身份执行命令:
su [-] UserName -c ‘COMMAND’

常见选项:
-l --login su -l UserName 相当于 su - UserName

设置密码

passwd

常用选项:
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f:强制操作
-n mindays:指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
–stdin:从标准输入接收用户密码
范例:


echo "PASSWORD" | passwd --stdin USERNAME

修改用户密码策略

常见选项:
-d LAST_DAY
-m --mindays MIN_DAYS
-M --maxdays MAX_DAYS
-W --warndays WARN_DAYS
-I --inactive INACTIVE 密码过期后的宽限期
-E --expiredate EXPIRE_DATE 用户的有效期
-l 显示密码策略
范例:

#下一次登录强制重设密码 [root@centos8 ~]#chage -d 0 wang

用户相关的其它命令

chfn 指定个人信息
chsh 指定shell
fifinger 可看用户个人信息

创建组

groupadd

常见选项:
-g GID 指明GID号;[GID_MIN, GID_MAX]
-r 创建系统组,CentOS 6之前: ID<500,CentOS 7以后: ID<1000

修改组

组属性修改:groupmod

常见选项:
-n group_name: 新名字
-g GID: 新的GID

组删除

groupdel 可以删除组

常见选项:
-f, --force 强制删除,即使是用户的主组也强制删除组

更改组密码

组密码:gpasswd

常见选项:
-a user 将user添加至指定组中
-d user 从指定组中移除用户user
-A user1,user2,… 设置有管理权限的用户列表

临时切换主组

newgrp命令可以临时切换主组, 如果用户本不属于此组,则需要组密码

更改和查看组成员

groupmems可以管理组成员关系

常见选项:
-g, --group groupname 更改为指定组 (只有root)
actions:
-a, --add username 指定用户加入组
-d, --delete username 从组中删除用户
-p, --purge 从组中清除所有成员
-l, --list 显示组成员列表

groups 可查看用户组关系

新建文件和目录的默认权限

umask的值可以用来保留在创建文件权限
实现方式:
新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶
数不变
新建目录的默认权限: 777-umask
非特权用户umask默认是 002
root的umask 默认是 022
查看umask

umask
#模式方式显示
umask –S
#输出可被调用
umask –p

修改umask
umask #

持久保存umask
全局设置: /etc/bashrc
用户设置:~/.bashrc

Linux文件系统上的特殊权限

前面介绍了三种常见的权限:r, w, x 还有三种特殊权限:SUID, SGID, Sticky

特殊权限SUID

安全上下文
前提:进程有属主和属组;文件有属主和属组

  1. 任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限
  2. 启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组
  3. 进程访问文件时的权限,取决于进程的发起者
    (a) 进程的发起者,同文件的属主:则应用文件属主权限
    (b) 进程的发起者,属于文件属组;则应用文件属组权限
    © 应用文件“其它”权限
    二进制的可执行文件上SUID权限功能:
    任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
    启动为进程之后,其进程的属主为原程序文件的属主
    SUID只对二进制可执行程序有效
    SUID设置在目录上无意义

特殊权限SGID

二进制的可执行文件上SGID权限功能:
任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
启动为进程之后,其进程的属组为原程序文件的属组

目录上的SGID权限功能:
默认情况下,用户创建文件时,其属组为此用户所属的主组,一旦某目录被设定了SGID,则对此目录有
写权限的用户在此目录中创建的文件所属的组为此目录的属组,通常用于创建一个协作目录

特殊权限 Sticky 位

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

设定文件特殊属性

设置文件的特殊属性,可以访问root 用户误操作删除或修改文件
不能删除,改名,更改
chattr +i
只能追加内容
chattr +a
显示特定属性
lsattr

访问控制列表

ACL权限功能

ACL:Access Control List,实现灵活的权限管理
除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
CentOS7 默认创建的xfs和ext4文件系统具有ACL功能
CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加
所有者,自定义用户,所属组|自定义组,其他人

ACL相关命令

setfacl 可以设置ACL权限
getfacl 可查看设置的ACL权限

mask 权限

mask只影响除所有者和other的之外的人和组的最大权限
mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限(Effffective Permission)
用户或组的设置必须存在于mask权限设定范围内才会生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值