Linux命令行与shell脚本编程大全笔记(理解Linux文件权限)

UID 每个用户有唯一的UID,但登录系统是用的是登录名
/etc/passwd 保存的是将登录名匹配到UID
/etc/shadow 保存的是系统及各用户密码,只有root用户可以访问
root 的UID为 0
Linux 为系统账号预留了500以下的UID值

添加新用户
useradd -D 查看Linux系统创建新用户的一些默认值

参数 描述
-b 更改默认的创建用户HOME目录的位置
-e 更改默认的新账户的过期日期
-f 更改默认的新用户从密码过期到账户被禁用的天数
-g 更改默认的组名or GID
-s 更改默认的登录shell

eg. useradd -D -s /bin/ksh 更改用户默认的登录shell

创建用户是更改默认值

参数 描述
-d 为主目录指定一个名字
-e 用YYYY-MM-DD格式指定一个账户的过期日期
-g 指定用户登录的组名 GID
-m 创建用户的HOME目录
-p 为用户账户指定默认的密码
-u 为账户指定唯一的UID
-s 指定默认的登录shell

eg. useradd -d ym -g oracle -m /HOME/ym -p ym -s bash

删除用户
userdel ym 只会删除/etc/passwd文件中的用户信息,而不会删除属于该账户的任何文件
userdel -r ym 会删除用户的HOME目录及邮件目录

修改用户
usermod -l 修改用户账户的登录名
usermod -L 锁定账户,使用户无法登录
usermod -U 解除锁定,使用户能够登录
usermod -p 修改账户密码
usermod -g 修改默认的登录组

passwd 或者passwd ym 或者 chpasswd 修改自己账户的密码

/etc/group 组信息,每个组都有唯一的GID,用户的GID从500开始分配
添加用户到组之前,得先创建组
groupadd ym 创建名为ym的组
usermod -G ym ym1 将用户ym1加入组ym
usermod -G ym ym2 将用户ym2加入组ym
分配组时:
-g 指定的组名会替换掉该账户默认的组
-G 将该组添加到用户的属组的列表里

修改组
groupmod -g 修改已有组的GID
groupmod -n ym yming 修改组名ym为yming

文件符号

符号 描述
- 代表文件
d 代表目录
l 代表链接
c 代表字符型设备
b 代表块设备
n 代表网络设备
r 代表文件可读
w 代表文件可写
x 代表文件可执行

在这里插入图片描述
第一个rwx : 文件的属主
第二个rwx : 文件的数组
第三个r-x : 系统上其他人对该文件的权限

umask 用来设置所创建文件和目录的默认权限

r   -  4(八进制)
w   -  2
x	-  1

文件的默认权限是666,目录的权限是777,创建文件或目录时,该值减去umask掩码后的值即为权限

改变权限
chmod 760 testfile (rwxrw----)
u-用户,g-组,o-其他,a-所有
+增加权限, -移除权限,= 权限赋值
chmod o+r testfile (rwxrw-r–)
chmod u-x testfile (rw-rw-r–)
chmod -R 递归改变文件和子目录的权限

chown ym testfile 改变testfile文件的属主为ym
chowdn ym.ym testfile 支持同时改变文件的属主和属组
chown .ym testfile 只改变文件的数组
chown ym. testfile 同时改变属主和属组(前提系统采用和登录名同名的属组)
只有用户可以改变文件的属主,任何属主可以改变文件的属组,前提是属主是源属组和目标属组的成员
-R 递归改变文件和子目录
chgrp ym testfile 可以改变文件和目录的默认属组为ym

共享文件
Linux为每个文件和目录存储了三个额外的信息位
设置用户ID(SUID) 文件被用户使用时,程序以文件的属主运行
设置组ID(SGID) 文件-以文件属组的权限运行,目录-目录中创建的新文件以目录的默认属组作为默认属组
粘着位 进程结束后文件驻留在内存中

mkdir testdir
chgrp shared testdir
chmod g+s testdir
umask 002
touch testfile

猜你喜欢

转载自blog.csdn.net/qq_34595352/article/details/92792180
今日推荐