Linux权限管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux权限管理相关的知识,希望对你有一定的参考价值。

权限管理

三类用户

u 属主
g 属组
o 其他用户

改变文件属主、属组(只有管理员可以使用此命令)

# 修改目录、文件的属主
chown USERNAME file,...
  -R 修改目录及其内部文件的属性
  --reference=/path/to/somefile file,... 按照somefile文件的属主、属组修改file文件的属主、属组
chown USERNAME:GRPNAME file,... 修改文件或目录的属主及属组
chown :GRPNAME file,... 只修改文件或目录的属组
chwun USERNAME.GRPNAME file,...等于chown USERNAME:GRPNAME file,... 修改文件或目录的属主、属组

# 修改test.txt文件的属主
[root@Server ~]$ chown zhanglw /tmp/test.txt

# 修改test目录的属主
[root@Server ~]$ chown zhanglw /tmp/test

# 修改test目录及内部文件的属主
[root@Server ~]$ chown -R zhanglw /tmp/test

# 用--reference修改同abc文件一样的属主、属组
[root@Server ~]$ chown --reference=/tmp/abc.txt /tmp/test.txt

# 修改文件的属主、属组
[root@Server ~]$ chown root:root /tmp/test.txt
# 修改文件的属组
[root@Server ~]$ chown :root /tmp/test.txt

# 修改目录、文件的属组
chgrp GRPNAME file,...
  -R 修改目录及其内部文件的属性
  --reference=/path/to/somefile file,... 按照somefile文件的属主、属组修改file文件的属主、属组

修改目录、文件的权限(r,w,x)

# 修改三类用户的权限
chmod MODE file,...
  -R 修改目录及其内部文件的属性
  --reference=/path/to/somefile file,... 按照somefile文件的属主、属组修改file文件的属主、属组

# 修改test文件为 -rwxr-x---
[root@Server ~]$ chmod 750 /tmp/test
注:如把750写为75实际是075 前面补0

# 用--reference修改和abc同样的文件权限
[root@Server ~]$ chmod --reference=/tmp/abc /tmp/test

# 修改某类用户或某些类用户的权限
u,g,o,a(用户类别)
chmod 用户类别=MODE file,...
# 修改test文件属主u权限为rwx
[root@Server ~]$ chmod u=rwx /tmp/test
# 修改test文件属组g权限为rw-
[root@Server ~]$ chmod g=rw /tmp/test
# 修改test文件其他o权限为r-x
[root@Server ~]$ chmod o=rx /tmp/test
# 修改test文件属组g、其他o权限为r--
[root@Server ~]$ chmod g=r,o=r /tmp/test
或[root@Server ~]$ chmod go=r /tmp/test
# 修改test文件属组g权限r-x、其他权限o为---
[root@Server ~]$ chmod g=rx,o= /tmp/test
# 修改test文件u,g,o权限为rwx
[root@Server ~]$ chmod a=rwx /tmp/test

# 修改某类用户的某位或某些位权限
u,g,o,a(用户类别)
chmod 用户类别 +|- MODE file,...
# 修改test文件属主u权限为rw-
[root@Server ~]$ chmod u-x /tmp/test  注:是u减号x
# 修改test文件属主u权限为rwx,属组g权限为rw-
[root@Server ~]$ chmod u+x,g-x /tmp/test  
# 修改test文件u,g,o权限为rwx
[root@Server ~]$ chmod a+x /tmp/test
或[root@Server ~]$ chmod +x /tmp/test
# 修改test文件u,g,o权限为rw-
[root@Server ~]$ chmod a-x /tmp/test
[root@Server ~]$ chmod -x /tmp/test

创建用户练习

# 创建一个用户zhanglw过程
[root@Server ~]$ useradd -M zhanglw
[root@Server ~]$ cp -r /etc/skel /home/zhanglw
[root@Server ~]$ chown -R zhanglw:zhanglw /home/zhanglw
[root@Server ~]$ chmod -R go= /home/zhanglw

用su - zhanglw 登录验证

# 改文件创建zhanglw用户
[root@Server ~]$ vi /etc/group
[root@Server ~]$ vi /etc/passwd
[root@Server ~]$ vi /etc/shadow
上次修改密码的时间就是今天 今天的算法 用计算器bc
今天到此刻经过多少秒
data +%s/86400(每天的秒数)
[root@Server ~]$ cp -r /etc/skel /home/zhanglw
[root@Server ~]$ chown -R zhanglw:zhanglw /home/zhanglw
[root@Server ~]$ chmod -R go= /home/zhanglw
[root@Server ~]$ openssl passwd -1 -salt linux123
Password: 
$1$linux123$dxYwK1/pDqqwakR81O6tc/

见以下分解步骤

改文件创建zhanglw用户

# 改文件创建zhanglw用户
[root@Server ~]$ vi /etc/group

[root@Server ~]$ vi /etc/passwd

[root@Server ~]$ vi /etc/shadow
上次修改密码的时间就是今天 今天的算法 用计算器bc
今天到此刻经过多少秒
data +%s/86400(每天的秒数)

[root@Server ~]$ cp -r /etc/skel /home/zhanglw
[root@Server ~]$ chown -R zhanglw:zhanglw /home/zhanglw
[root@Server ~]$ chmod -R go= /home/zhanglw
[root@Server ~]$ openssl passwd -1 -salt linux123
Password: 
$1$linux123$dxYwK1/pDqqwakR81O6tc/

[root@Server ~]$ vi /etc/shadow

至此用户创建完 su - zhanglw 验证 输入 密码

遮罩码

umask 遮罩码
#umask 查询umask命令
#umask 022 指定umask号

666-umask  创建文件时的默认权限
777-umask  创建目录时的默认权限

对于管理员 遮罩码是022 
666-022=644 创建文件时的权限
777-022=755 创建目录时的权限
对于普通用户 遮罩码是002
666-002=664 创建文件时的权限
777-002=775 创建目录时的权限

文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限加1

以上是关于Linux权限管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux之用户权限管理

Linux基础-管理用户和文件权限

linux系统用户以及用户组管理

用户权限及用户管理命令

linux用户权限与管理

Linux账号和权限管理