您的位置:首页 > 运维架构 > Linux

Linux权限管理

2015-03-24 21:20 501 查看

创建新用户

# 创建用户并添加到sudoers
sudo adduser blog
sudo adduser blog sudo


修改用户组

# 创建文件
touch script.sh
# 查看文件详情
ll
-rw-rw-r-- 1 blog blog    0 Mar 23 21:18 script.sh
sudo chgrp root script.sh
-rw-rw-r-- 1 blog root    0 Mar 23 21:18 script.sh


修改拥有者

sudo chown root script.sh
-rw-rw-r-- 1 root root    0 Mar 23 21:18 script.sh
# 同时修改own和group
sudo chown blog:blog script.sh
-rw-rw-r-- 1 blog blog    0 Mar 23 21:18 script.sh


权限基础

在Linux中,有三种用户会使用文件或目录:文件的实际拥有者(u)、用户组(g)以及其他人(o)。文件或目录都有如下的权限:

权限缩写对文件的含义对目录的含义
可读r可以查看可以使用ls命令列出其内容
可写w可以修改可以删除、重命名或添加文件
可执行x可以运行可以读取其文件、子目录或运行文件
suids任何用户都可以使用拥有者的权限执行文件不可用
sgids任何用户都可以使用用户组的权限执行文件在目录中新创建的任何文件都属于拥有该目录的用户组
stickyt不适用于Linux用户不能删除或重命名文件,除非当前用户是文件或目录的拥有者

修改权限的两种方式

# 1、字母法
chmod [ugo][+-=][rwx]
ll
-rw-rw-r-- 1 blog blog    0 Mar 23 21:18 script.sh
# 当前用户加执行权限
chmod u+x script.sh
-rwxrw-r-- 1 blog blog    0 Mar 23 21:18 script.sh*
# 当前用户去执行权限
chmod u-x script.sh
-rw-rw-r-- 1 blog blog    0 Mar 23 21:18 script.sh

# 2、数字法(更加简单灵活)
chmod [0-7][0-7][0-7]
# rwx分别对应421,如果是可读且可写,那么对应权限为r+w=4+2=6
# 为当前用户添加执行权限,添加x=1,所以权限总和为r+w+x=4+2+1=7
chmod 764 script.sh
ll
-rwxrw-r-- 1 blog blog    0 Mar 23 21:18 script.sh*
# 删除执行权限
chmod 664 script.sh
-rw-rw-r-- 1 blog blog    0 Mar 23 21:18 script.sh


设置suid

有些文件需要所有用户都能够进行访问,/usr/bin/passwd属于root用户,当其他用户都能修改自己的密码。

chmod u[+-]s
chmod 4[0-7][0-7][0-7]
chmod u+s script.sh
-rwSrw-r-- 1 blog blog   18 Mar 23 22:24 script.sh
# 大写S表示,文件之前没有可执行权限
chmod u-s script.sh
chmod u+x+s script.sh
-rwsrw-r-- 1 blog blog   18 Mar 23 22:24 script.sh*


设置sgid

ubuntu下的crontab命令被设置了sgid,以便于任何用户都能够以受限的crontab组的权限而不是root权限来执行命令。当目录被设置sgid以后,任何在该目录下新建的文件都属于该目录所在的组。

chmod g[+-]s
chmod 2[0-7][0-7][0-7]
# 新建用户组
sudo addgroup admin
sudo adduser blog admin
sudo adduser sgid_user admin
chmod g+s+w test
chown :admin test
drwxrwsr-x 2 blog admin 4096 Mar 24 21:05 test/
su sgid_user
touch sgid.txt
# 创建的文件属于admin用户组
-rw-rw-r-- 1 sgid_user admin 0 Mar 24 21:05 sgid.txt


设置sticky bit

在linux下,sticky bit只作用于目录。/tmp是一个很好的例子,任何人都能在其中创建文件。但只有用户的拥有者或者目录的拥有者才能删除对应的文件。

ll|grep tmp
drwxrwxrwt  15 root     root      4096 Mar 24 21:15 tmp/
ll|grep pulse-2L9K88eMlGn7/
drwx------  2 lightdm  lightdm  4096 Mar 23 20:47 pulse-2L9K88eMlGn7/
rm -rf pulse-2L9K88eMlGn7/
rm: cannot remove `pulse-2L9K88eMlGn7': Permission denied
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息