1. linux权限管理之基本权限
(Linux权限管理之基本权限-慕课网 http://www.imooc.com/learn/481 )
一、文件基本权限
1、基本权限的修改
-rw-r--r--
- 文件类型(- 文件 d 目录 l 软链接文件)
rw- u所有者
r-- g所属组
r-- o其他人
r 读
w 写
x 执行
chmod命令
chmod [选项] 模式 文件名
- 选项
-R 递归
- 模式
[ugoa] [+-=] [rwx]
[mode=421]
chmod u+x cangls.av
chmod g+w o+w furong.av
chmod a=rwx fengjie.av
#创建新文件
[root@localhost ~]# touch cangls.av
[root@localhost ~]# ll
#所有者添加执行权限
[root@localhost ~]# chmod u+x cangls.av
[root@localhost ~]# ll
#所属组和其他人添加写权限
[root@localhost ~]# chmod g+w,o+w cangls.av
[root@localhost ~]# ll
#所有者减去执行权限,所属组和其他人减去写权限
[root@localhost ~]# chmod u-x,g-w,o-w cangls.av
[root@localhost ~]# ll
#所有者添加读写执行权限,所属组添加读写权限
[root@localhost ~]# chmod u=rwx,g=rw cangls.av
[root@localhost ~]# ll
#所有人赋予读写权限
[root@localhost ~]# chmod a=rw cangls.av
[root@localhost ~]# ll
r ----4
w ----2
x ----1
rwxr-xr-x
7 5 5
#所有者赋予读写执行权限,所属组和其他人赋予读执行权限
[root@localhost ~]# chmod 755 cangls.av
[root@localhost ~]# ll
#改为普通文件权限
[root@localhost ~]# chmod 644 cangls.av
[root@localhost ~]# ll
777(文件最高权限)
644(普通文件权限)
755(所有者赋予读写执行权限,所属组和其他人赋予读执行权限)
r:读取文件的内容(cat more head tail)
w:编辑、新增、修改文件内容(vi echo),但是不包含删除文件;
x:可执行
r:可以查询目录下文件名(ls)
w:具有修改目录结构的权限。如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切(touch rm mv cp)
x:可以进入目录(cd)
对文件来讲:最高权限是x(执行)
对目录来讲:最高权限是w(写),能赋予的权限只有0,5,7
#创建普通用户user1
[root@localhost ~]# useradd user1
#创建普通用户密码user1
[root@localhost ~]# passwd user1
更改用户 user1 的密码 。
新的 密码:123
无效的密码: WAY 过短
无效的密码: 过于简单
重新输入新的 密码:123
passwd: 所有的身份验证令牌已经成功更新。
chown 用户名 文件名
例如:chown ds fengj.av
chgrp 组名 文件名
例如:chgrp group1 fengj.av
要求:
拥有一个av目录
让加藤老师拥有所有的权限
让本课程学员有查看的权限
其他所有人不许查看这个目录
#创建目录
[root@localhost ~]# mkdir av
#查看
[root@localhost ~]# ll -d av
[root@localhost ~]# useradd jt
[root@localhost ~]# passwd jt
更改用户 jt 的密码 。
新的 密码:
无效的密码: WAY 过短
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
#添加组
[root@localhost ~]# groupadd user
#把user1用户加到user组里面
[root@localhost ~]# gpasswd -a user1 user
Adding user user1 to group user
[root@localhost ~]# chown jt:user av
[root@localhost ~]# ll -d av
#其他人改为0权限
[root@localhost ~]# chmod 750 av
[root@localhost ~]# ll -d av
#查看默认权限
[root@localhost ~]# umask
0022
第一位0:文件特殊权限
022:文件默认权限
文件默认不能建立为执行文件,必须手工赋予执行权限;
所以文件默认权限最大为666;
默认权限需要换算成字母再相减;
建立文件之后的默认权限,为666减去umask值;
例如:
文件默认最大权限666,umask值022;
-rw-rw-rw-减去-----w--w-等于-rw-r--r--
例如:
文件默认最大权限666,umask值033
-rw-rw-rw-减去-----wx-wx等于-rw-r--r--
目录的默认权限最大为777;
默认权限需要换算成字母再相减;
建立文件之后的默认权限,为777减去umask值;
例如:
目录默认最大权限为777,umask值022;
-rwxrwxrwx减去-----w--w-等于-rwxr-xr-x
临时修改
umask 0002
永久修改
vi /etc/profile
2. linux如何修改文件或目录的权限
linux系统,如redhat或ubuntu
打开操作系统,切换到要修改的文件或目录的父目录。注意,首先切换到root用户群进行更改。
接下来,为了举例,我复制/etc/rc.d下的文件到/tmp下,并切换到/tmp目录。
文件的基本权限分为三种:rwx,权限的对象也有三种:属主(u)、属组(g)、其他(o)。对于文件权限的修改,有两种方式。第一种指定对某一类用户添加(+)或删除(-)某一个权限。在不指定用户时,表示对所有用户修改某一个权限。
第二种是直接指定一个3位的8进制数,它的二进制表示的每一位分别表示该用户的某个权限,0表示没有权限,1表示有权限。
以上的命令只能修改对应的目录自身权限,不能修改目录内部文件的权限。如果要修改目录内部的权限,则使用-R选项,表示递归修改。
3. Linux关于文件的权限笔记
1、调整文件的权限命令:chmod
Linux的每个文件都定义了文件的拥有者:u(user)、拥有组:g(group)、其他人:o(others)权限,对应的权限用rwx的组合来定义。使用chmod命令,增加权限用+,删除权限用-,某个文件详细的权限用=号。
比如:
chmod u+r filename #给某文件增加读的权限
chmod u-r filename #给某文件删除读的权限
chmod u+w filename #给某文件增加写的权限
chmod u-w filename #给某文件删除写的权限
chmod u+x filename #给某文件增可执行的权限
chmod u-x filename #给某文件删除可执行的权限
chmod u+rwx filename #给某文件增加读写可执行的权限
chmod u=rwx filename #给某文件设定读写可执行的权限
通过这种方式可以同一时刻给文件拥有者、文件拥有组、或其他用户设置权限,如果想要同时设置所有用户的权限就要使用数字表示的方式了,Linux规定 r=4,w=2,x=1。比如权限rwx:7,r-x:5。如果想设置一个文件拥有者有读、写、执行,拥有组的权限是读、执行、其他人只读的话,可以使用命令:chmod 745 filename 进行设置。chmod -R 745 dirname #用来看设置目录权限 必须加 -R参数。
2、改变文件的拥有者命令:chown
比如:chown user1 hello.txt
#将hello.txt 文件拥有者修改为 user1, 前提user1 为系统中拥有的用户
chown :user1 hello.txt
#将hello.txt 文件拥有者修改为 user1组, 前提user1 为系统中拥有的用户组
chown user1:user1 hello.txt
#相当于执行了上面两条命令
chown user1:user1 dirname
#修改目录的文件拥有者和用户组 需要加 -R参数
3、修改文件的拥有组命令:chgrp
比如:
chgrp user1 hello.txt
#将hello.txt 文件用户组修改为 user1
chgrp user1 dirname
#将dirname 目录用户组修改为 user1,需要加 -R参数
觉得不错请点赞支持,欢迎留言或进我的个人群855801563领取【架构资料专题目合集90期】、【BATJTMD大厂JAVA面试真题1000+】,本群专用于学习交流技术、分享面试机会,拒绝广告,我也会在群内不定期答题、探讨。
4. Linux系统下用户以及权限管理
一、操作系统中的用户管理 相关配置文件解读
Linux用户在操作系统可以进行日常管理和维护,涉及到的相关配置文件如下:
/etc/passwd 保存操作系统中的所有用户信息
root : x : 0 : 0 : root : /root : /bin/bash
name:password:UID:GID:GECOS:directory:shell
用户名 :密码占位符 :uid :基本组的gid :用户信息记录字段:用户的家目录:用户登录系统后使用的命令解析器
————————————————
字段1:用户名
字段2:密码占位符
字段3:用户的UID 0 表示超级用户 , 500-60000 普通用户 , 1-499 程序用户
字段4:基本组的GID 先有组才有用户
字段5:用户信息记录字段
字段6:用户的家目录
字段7:用户登录系统后使用的命令解释器
————————————————
UID:0表示超级用户, 程序用户 (1-499),普通用户 (500以上60000以下),根据uid将用户分为以上三类用户。
/etc/shw 保存用户密码(以加密形式保存)
[root@xing /]# cat /etc/shadow
root : $6$Jw5XsDvvNBH5Xoq. : 19180 : 0 : 99999 : 7 : : :
用户名:密码(加密后的字符串):最近一次的修改时间【距离1970年1月1日的距离】:密码的最短有效期:密码的最长有效期:密码过期前7天警告:密码的不活跃期:用户的失效时间: 保留字段
————————————————
字段1:用户名
*字段2:用户的密码加密后的字符串(sha)
字段3:距离1970/1/1密码最近一次修改的时间
字段4:密码的最短有效期
*字段5:密码的最长有效期(建议时间 90)
字段6:密码过期前7天警告
字段7:密码的不活跃期
字段8:用户的失效时间
字段9:保留字段
这个字段目前没有使用,等待新功能的加入。
————————————————
/etc/group 保存组信息
————————————————
root:x:0:
bin:x:1:bin,daemon
组名:组的密码占位符:gid:附加组成员
————————————————
/etc/login.defs 用户属性限制,密码过期时间,密码最大长度等限制
/etc/default/useradd 显示或更改默认的useradd配置文件
二、文件及目录权限
文件与权限: 即文件或者目录属于哪个用户,属于哪个组,不同的用户能对该文件进行何种操作。
————————————————
注:
查看文件权限: ls -l 文件
查看目录权限 : ls -ld 目录
————————————————
[root@xing Desktop]# ls -l /root/Desktop/
total 70584
lrwxrwxrwx. 1 root root 18 Jul 14 14:32 123.txt -> /root/Desktop/ming
-rw-r--r--. (文件属性) 1 (链接个数: 表示指向它的链接文件的个数 ) root (所属者) root (所属组) 0(文件大小:单位byte) Jul 14 14:14(最后一次修改时间) 2.txt(文件名)
drwx------.(文件属性) 7 (目录中的子目录数: 此处看到的值要减2才等于该目录下的子目录的实际个数。 ) root (所属者) root (所属组) 4096 (文件大小:单位byte)Jul 13 16:56(最后一次修改时间) vmware-tools-distrib(目录名)
[root@xing Desktop]# ls -ld /root/Desktop/
drwxr-xr-x. 3 root root 4096 Jul 14 14:44 /root/Desktop/
————————————————
文件属性解释:
- rw- r-- r-- .
d rwx r-x r-x .
字段1:文件类型 【- 普通文件 d目录 l符号链接 b块设备】
字段2:文件所有者对该文件的权限
字段3:文件所属组的权限
字段4:其他用户的权限(既不是文件所有者也不是文件所属组的用户)
字段5:表示文件受 selinux 的程序管理
8进制赋权法: r 【100】4; w【010】2; x【001】1
————————————————
三、用户以及权限管理命令汇总:
————————————————
用户增删改命令
useradd
userdel
usermod
————————————————
用户组增删改命令
groupadd
groupdel
groupmod
————————————————
passwd
change
————————————————
文件权限修改: chmod命令
chmod 对象 算数运算符 权限 文件
[root@xing tmp]# ls -ld ming
drwxr-xr-x. 2 root root 4096 Jul 16 10:27 ming
[root@xing tmp]# chmod o-x ming
[root@xing tmp]# ls -ld ming
drwxr-xr--. 2 root root 4096 Jul 16 10:27 ming
————————————————
文件所属者修改:
chown 用户 文件
[root@xing tmp]# chown ming ming
[root@xing tmp]# ls -ld ming
drwxr-xr--. 2 ming root 4096 Jul 16 10:27 ming
————————————————
文件所属组修改:
chgrp 组 文件
[root@xing tmp]# chgrp ming ming
[root@xing tmp]# ls -ld ming
drwxr-xr--. 2 ming ming 4096 Jul 16 10:27 ming
————————————————
8进制赋权法
[root@xing ~]# chmod 644 /tmp/ming
[root@xing ~]# ls -ld /tmp/ming
drw-r--r--. 2 ming ming 4096 Jul 16 10:27 /tmp/ming
————————————————
linux下命令“ll”是“ls -l"的别名。
————————————————
粘滞位:赋权后的文件 只有建立者可以删除
chmod o+t 文件
[root@xing ~]# chmod o+t /tmp/ming
[root@xing ~]# ll -d /tmp/ming
drw-r--r-T . 2 ming ming 4096 Jul 16 10:27 /tmp/ming
————————————————
sgid : 赋权后的目录,新建立的文件或者子目录的所属组继承父目录的所属组
chmod g+s 目录
[root@xing ming]# chmod g+s /tmp/ming
[root@xing tmp]# ll
drw-r-Sr-T. 2 ming ming 4096 Jul 16 11:29 ming
[root@xing ming]# touch 20.txt
[root@xing ming]# ll
-rw-r--r--. 1 root ming 0 Jul 16 11:33 20.txt
[root@xing ming]# mkdir 60
[root@xing ming]# ll
drwxr-sr-x. 2 root ming 4096 Jul 16 11:34 60
————————————————
suid :允许谁运行该文件具有该文件所属者的权限
chmod u+s 文件
[root@xing Desktop]# ll /usr/bin/vim
-rwxr-xr-x. 1 root root 2324712 Dec 22 2016 /usr/bin/vim
[root@xing Desktop]# chmod u+s /usr/bin/vim
[root@xing Desktop]# ll /usr/bin/vim
-rwsr-xr-x. 1 root root 2324712 Dec 22 2016 /usr/bin/vim
备注:linux 红底白字代表警告!
————————————————
[root@xing Desktop]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
suid:4 sgid:2 粘滞位:1
[root@xing Desktop]# find /usr/bin -perm 4 755
/usr/bin/at
/usr/bin/chage
/usr/bin/pkexec
/usr/bin/Xorg
/usr/bin/crontab
/usr/bin/newgrp
/usr/bin/vim
/usr/bin/gpasswd
/usr/bin/passwd
/usr/bin/ksu
————————————————
1、不再允许添加新用户的请求
chattr命令 :用于改变文件属性
chattr +i 文件
lsttr命令 :查看文件属性
lsattr 文件
[root@xing Desktop]# lsattr /etc/passwd /etc/shadow
-------------e- /etc/passwd
-------------e- /etc/shadow
[root@xing Desktop]# chattr +i /etc/passwd /etc/shadow
[root@xing Desktop]# lsattr /etc/passwd /etc/shadow
----i--------e- /etc/passwd
----i--------e- /etc/shadow
[root@xing Desktop]# useradd kk
useradd: cannot open /etc/passwd
2、umask
root用户的umask默认值是0022,一般用户默认是0002
目录的最高权限 0777-0022=0755
文件的最高权限 0666-0022=644
一般服务器配置umask的值配置为027最好;需要去修改两处文件中的umask值。
/etc/profile
/etc/bashrc
3、修改默认的密码最长有效期:修改以下配置文件
/etc/login.defs
5. Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)
权限简介
Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。
Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
Linux下权限的粒度有
拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组,
如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
Linux上通常使用chmod命令对文件的权限进行设置和更改。
一、快速入门
更改文件权限 (chmod命令)
一般使用格式
chmod [可选项]
可选项: -c, --changes like verbose but report onlywhena change is made (若该档案权限确实已经更改,才显示其更改动作) -f, --silent, --quiet suppress most error messages(若该档案权限无法被更改也不要显示错误讯息) -v, --verbose output a diagnosticforevery file processed(显示权限变更的详细资料) --no-preserve-rootdonottreat'/'specially (the default) --preserve-root fail to operate recursively on'/' --reference=RFILE use RFILE's mode instead of MODE values-R, --recursive change files and directories recursively(以递归的方式对目前目录下的所有档案与子目录进行相同的权限变更)--help显示此帮助信息--version显示版本信息mode :权限设定字串,详细格式如下 :[ugoa...][[+-=][rwxX]...][,...],其中[ugoa...]
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。[+-=]
+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。[rwxX]
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
file...文件列表(单个或者多个文件、文件夹)
范例:
设置所有用户可读取文件 a.conf
设置 c.sh 只有 拥有者可以读写及执行
设置文件 a.conf 与 b.xml 权限为拥有者与其所属同一个群组 可读写,其它组可读不可写
设置当前目录下的所有档案与子目录皆设为任何人可读写
数字权限使用格式
在这种使用方式中,首先我们需要了解数字如何表示权限。
首先,我们规定 数字 4 、2 和 1表示读、写、执行权限(具体原因可见下节权限详解内容),即 r=4,w=2,x=1
。此时其他的权限组合也可以用其他的八进制数字表示出来,如: rwx = 4 + 2 + 1 = 7 rw = 4 + 2 = 6 rx = 4
+1 = 5 即
若要同时设置
rwx (可读写运行) 权限则将该权限位 设置 为 4 + 2 + 1 = 7 若要同时设置 rw- (可读写不可运行)权限则将该权限位 设置
为 4 + 2 = 6 若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置 为 4 +1 = 5
上面我们提到,每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。即我们可以用用三个8进制数字分别表示 拥有者 、群组 、其它组( u、 g 、o)的权限详情,并用chmod直接加三个8进制数字的方式直接改变文件权限。语法格式为 :
chmod file...
其中a,b,c各为一个数字,分别代表User、Group、及Other的权限。相当于简化版的chmod u=权限,g=权限,o=权限file...而此处的权限将用8进制的数字来表示User、Group、及Other的读、写、执行权限
范例:
设置所有人可以读写及执行
设置拥有者可读写,其他人不可读写执行
更改文件拥有者(chown命令)
linux/Unix 是多人多工作业系统,每个的文件都有拥有者(所有者),如果我们想变更文件的拥有者(利用 chown 将文件拥有者加以改变),一般只有系统管理员(root)拥有此操作权限,而普通用户则没有权限将自己或者别人的文件的拥有者设置为别人。
语法格式:
chown [可选项] user[:group] file...
使用权限:root说明:[可选项] :同上文chmoser :新的文件拥有者的使用者group :新的文件拥有者的使用者群体(group)
范例:
设置文件 d.key、e.scrt的拥有者设为 users 群体的 tom
设置当前目录下与子目录下的所有文件的拥有者为 users 群体的 James
二、Linux权限详解
Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。这也是Linux有别于Windows的机制,也是基于这个权限机智,Linux可以有效防止病毒自我运行,因为运行的条件是必须要有运行的权限,而这个权限在Linux是用户所赋予的。
Linux的文件权限有以下设定:
Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
Linux下权限的属组有 拥有者 、群组 、其它组 三种。每个文件都可以针对这三个属组(粒度),设置不同的rwx(读写执行)权限。
通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
如果我们要表示一个文件的所有权限详情,有两种方式:
第一种是十位二进制表示法,(三个属组每个使用二进制位,再加一个最高位共十位),可简化为三位八进制形式
另外一种十二位二进制表示法(十二个二进制位),可简化为四位八进制形式
十位权限表示
常见的权限表示形式有:
-rw------- (600)只有拥有者有读写权限。-rw-r--r-- (644)只有拥有者有读写权限;而属组用户和其他用户只有读权限。-rwx------ (700)只有拥有者有读、写、执行权限。-rwxr-xr-x (755)拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。-rwx--x--x (711)拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。-rw-rw-rw- (666)所有用户都有文件读、写权限。-rwxrwxrwx (777)所有用户都有读、写、执行权限。
后九位解析:我们知道Linux权限总共有三个属组,这里我们给每个属组使用三个位置来定义三种操作(读、写、执行)权限,合起来则是权限的后九位。 上面我们用字符表示权限,其中 -代表无权限,r代表读权限,w代表写权限,x代表执行权限。
实际上,后九位每个位置的意义(代表某个属组的某个权限)都是固定的,如果我们将各个位置权限的有无用二进制数 1和 0来代替,则只读、只写、只执行权限,可以用三位二进制数表示为
r--=100-w-=010--x=001---=000
转换成八进制数,则为 r=4, w=2, x=1, -=0(这也就是用数字设置权限时为何是4代表读,2代表写,1代表执行)
实际上,我们可以将所有的权限用二进制形式表现出来,并进一步转变成八进制数字:
rwx=111=7rw-=110=6r-x=101=5r--=100=4-wx=011=3-w-=010=2--x=001=1---=000=0
由上可以得出,每个属组的所有的权限都可以用一位八进制数表示,每个数字都代表了不同的权限(权值)。如 最高的权限为是7,代表可读,可写,可执行。
故 如果我们将每个属组的权限都用八进制数表示,则文件的权限可以表示为三位八进制数
-rw------- =600-rw-rw-rw- =666-rwxrwxrwx =777
关于第一位最高位的解释:上面我们说到了权限表示中后九位的含义,剩下的第一位代表的是文件的类型,类型可以是下面几个中的一个:
d代表的是目录(directroy)-代表的是文件(regular file)s代表的是套字文件(socket)p代表的管道文件(pipe)或命名管道文件(named pipe)l代表的是符号链接文件(symbolic link)b代表的是该文件是面向块的设备文件(block-oriented device file)c代表的是该文件是面向字符的设备文件(charcter-oriented device file)
十二位权限(Linux附加权限)
附加权限相关概念
linux除了设置正常的读写操作权限外,还有关于一类设置也是涉及到权限,叫做Linxu附加权限。包括 SET位权限(suid,sgid)和粘滞位权限(sticky)。
SET位权限:
suid/sgid是为了使“没有取得特权用户要完成一项必须要有特权才可以执行的任务”而产生的。
一般用于给可执行的程序或脚本文件进行设置,其中SUID表示对属主用户增加SET位权限,SGID表示对属组内用户增加SET位权限。执行文件被设置了SUID、SGID权限后,任何用户执行该文件时,将获得该文件属主、属组账号对应的身份。在许多环境中,suid
和 sgid 很管用,但是不恰当地使用这些位可能使系统的安全遭到破坏。所以应该尽量避免使用SET位权限程序。(passwd
命令是为数不多的必须使用“suid”的命令之一)。
suid(set User ID,set UID)的意思是进程执行一个文件时通常保持进程拥有者的UID。然而,如果设置了可执行文件的suid位,进程就获得了该文件拥有者的UID。
sgid(set Group ID,set GID)意思也是一样,只是把上面的进程拥有者改成进程组就好了。
SET位权限表示形式(10位权限):
如果一个文件被设置了suid或sgid位,会分别表现在所有者或同组用户的权限的可执行位上;如果文件设置了suid还设置了x(执行)位,则相应的执行位表示为s(小写)。但是,如果没有设置x位,它将表示为S(大写)。如:
1、-rwsr-xr-x表示设置了suid,且拥有者有可执行权限2、-rwSr--r--表示suid被设置,但拥有者没有可执行权限3、-rwxr-sr-x表示sgid被设置,且群组用户有可执行权限4、-rw-r-Sr--表示sgid被设置,但群组用户没有可执行权限
设置方式:
SET位权限可以通过chmod命令设置,给文件加suid和sgid的命令如下(类似于上面chmod赋予一般权限的命令):
chmo+sfilename设置suid位chmo-sfilename去掉suid设置chmodg+sfilename设置sgid位chmodg-sfilename去掉sgid设置
粘滞位权限:
粘滞位权限即sticky。一般用于为目录设置特殊的附加权限,当目录被设置了粘滞位权限后,即便用户对该目录有写的权限,也不能删除该目录中其他用户的文件数据。设置了粘滞位权限的目录,是用ls查看其属性时,其他用户权限处的x将变为t。
使用chmod命令设置目录权限时,+t、-t权限模式可分别用于添加、移除粘滞位权限。
粘滞位权限表示形式(10位权限):
一个文件或目录被设置了粘滞位权限,会表现在其他组用户的权限的可执行位上。如果文件设置了sticky还设置了x(执行)位,其他组用户的权限的可执行位为t(小写)。但是,如果没有设置x位,它将表示为T(大写)。如:
1、-rwsr-xr-t表示设置了粘滞位且其他用户组有可执行权限2、-rwSr--r-T表示设置了粘滞位但其他用户组没有可执行权限
设置方式:
sticky权限同样可以通过chmod命令设置:
chmod +t <文件列表..>
十二位的权限表示方法
附加权限除了用十位权限形式表示外,还可以用用十二位字符表示。
11109876543210S G T r w x r w x r w x
SGT分别表示SUID权限、SGID权限、和 粘滞位权限,这十二位分别对应关系如下:
第11位为SUID位,第10位为SGID位,第9位为sticky位,第8-0位对应于上面的三组rwx位(后九位)。
在这十二位的每一位上都置值。如果有相应的权限则为1, 没有此权限则为0。
-rw-r-sr--的值为:010110100100-rwsr-xr-x的值为:100111101101-rwsr-sr-x的值为:110111101101-rwsr-sr-t的值为:111111101101
如果将则前三位SGT也转换成一个二进制数,则
suid 的八进制数字是4
sgid 的代表数字是 2
sticky 位代表数字是1
这样我们就可以将十二位权限三位三位的转化为4个八进制数。其中
最高的一位八进制数就是suid,sgdi,sticky的权值。
第二位为 拥有者的权值
第三位为 所属组的权值
最后一位为 其他组的权值
附加权限的八进制形式
通过上面,我们知道,正常权限和附加权限可以用4位八进制数表示。类似于正常权限的数字权限赋值模式(使用三位八进制数字赋值)
chmod file...
我们可以进一步使用4位八进制数字同时赋值正常权限和附加权限。
chmod file...
其中s是表示附加权限的把八进制数字,abc与之前一致,分别是对应User、Group、及Other(拥有者、群组、其他组)的权限。因为SUID对应八进制数字是4,SGID对于八进制数字是2,则“4755”表示设置SUID权限,“6755”表示同时设置SUID、SGID权限。
我们进一步将上小节的例子中的二进制数转变为八进制表示形式,则
-rw-r-sr-- =010110100100=2644-rwsr-xr-x =100111101101=4755-rwsr-sr-x =110111101101=6755-rwsr-sr-t =111111101101=7755
对比范例:
设置 netlogin 的权限为拥有者可读写执行,群组和其他权限为可读可执行
设置 netlogin 的权限为拥有者可读写执行,群组和其他权限为可读可执行,并且设置suid
chmod 4755与chmod 755对比多了附加权限值4,这个4表示其他用户执行文件时,具有与所有者同样的权限(设置了SUID)。
为什么要设置4755 而不是 755?
假设netlogin是root用户创建的一个上网认证程序,如果其他用户要上网也要用到这个程序,那就需要root用户运行chmod 755 netlogin命令使其他用户也能运行netlogin。但假如netlogin执行时需要访问一些只有root用户才有权访问的文件,那么其他用户执行netlogin时可能因为权限不够还是不能上网。这种情况下,就可以用 chmod 4755 netlogin 设置其他用户在执行netlogin也有root用户的权限,从而顺利上网。
6. linux文件权限管理(超详细)
在linux系统中,我们想看一些资源的权限常会使用 ls -a 来显示资源的列表以及他们各自对应的权限,但是有的时候看到那每一行开头的字母是不是会有点懵逼 drwxr-xr-x 或者 drwx------ 等等
文件或目录的权限可以分为3种:
常见的linux文件权限,数字和字母对应:
从左至右,
1-3位代表文件所有者的权限,
4-6位代表同组用户的权限,
7-9位代表其他用户的权限。
,看两个例子如下:
644
1-3位6等于4+2+0,rw-,所有者可读、可写、不可执行
4-6位4等于4+0+0,r--,同组用户仅可读
7-9位4等于4+0+0,r--,其他用户仅可读
755
1-3位7等于4+2+1,rwx,所有者可读、可写、可执行
4-6位5等于4+1+0,r--,同组用户可读、不可写、可执行
7-9位5等于4+1+0,r--,其他用户可读、不可写、可执行
7. linux 文件有哪些特殊权限
r 读权限 为用户提供可以阅读文件的权限 w 写权限 为用户提供可以更改文件的权限 x 执行权限 为用户提供可以执行文件的权限 比如当用户需要执行shell脚本时 就需要对脚本提供执行权限
8. Linux权限管理基本知识
Linux权限管理基本知识大全
Linux系统有什么基本权限,权限管理命令是什么?下面跟我一起来看看吧!
一、基本权限
linux权限机制采用UGO模式。其中 u(user)表示所属用户、g(group)表示所属组、o(other)表示除了所属用户、所属组之外的情况。
u、g、o 都有读(read)、写(write)、执行(excute) 三个权限,所以UGO模式是三类九种基本权限。
用命令 ls -l 可列出文件的权限,第一列输出明确了后面的输出(后面一列代表 ugo权限)。第一个字母对应的关系:
“-” 普通文件
“d” 目录
”l“ 符号链接
”c“ 字符设备
"b" 块设备
"s" 套接字
"p" 管道
修改文件或目录的所属用户: chown 文件名 | 目录名 用户
-R 该参数以递归的方式修改目录下所有文件的所属用户,参数可以敲 chown --help 查看。
修改文件或目录的所属组: chgrp 文件名 | 目录名 组名
-R 该参数以递归的方式修改目录下的所有文件的'所属组。
命令chmod 用来修改文件或目录的权限: chmod -参数 模式 文件 | 目录
例子: 修改目录 log下所有文件的权限为700
chmod -R 700 log
注:700的来历是 u g o
rwx rwx rwx
111 000 000
关于 chmod 命令的权限模式除了数字表示,还可以是 u、g、o 、a 加 +、- 来表示。格式如下:u、g、o分别代表用户、属组和其他,a 就是
all ,可以代替ugo。 +、- 代表增加或删除对应的权限,r、w、x 代表三种权限,分别是读、写、执行。
例子:对于目录 log下的所有文件(已有权限是700)增加所属组(g)的读(r)、执行(x)权限。
chmod -R g+rx log
类似的命令可能还有很多,这里只是举几个最基本且常用的例子。很多命令用到时,再去查也可以。还可参考《鸟哥的Linux私房菜》。
二、特殊权限
Linux的3个特殊的权限,分别是setuid、setgid和stick bit。
setuid权限(S):只有用户可拥有,出现在执行权限(x)的位置。
setuid权限允许用户以其拥有者的权限来执行可执行文件,即使这个可执行文件是由其他用户运行的。
setgid权限(S):对应于用户组,出现在执行权限(x)的位置。
setgid权限允许以同该目录拥有者所在组相同的有效组权限来允许可执行文件。但是这个组和实际发起命令的用户组不一定相同。
stick bit (t /T):又名粘滞位,只有目录才有的权限,出现在其他用户权限(o)中的执行位置(x)。当一个目录设置了粘滞位,只有创建了该目录的用户才能删除目录中的文件,但是其他用户组和其他用户也有写权限。使用 t 或 T来表示。若没有设置执行权限,但是设置了粘滞位,使用 t;若同时设置了执行权限和粘滞位使用 T。典型的粘滞位使用是 /tmp 目录,粘滞位属于一种写保护。
设置特殊权限:
setuid: chmod u+s filename
setgid: chmod g+s directoryname
stick bit: chmod o+t directoryname
用数字表示特殊权限,是在基本权限之上的。浊嘴笨腮说不清楚,看例子:
例子:将上面例子中的log日志目录(已有权限 700)权限设置为755。特殊权限是类似 /tmp目录的 stick bit有效。
特殊权限 基本权限
setuid setgid stick bit user group other
0 0 1 rwx rwx rwx
111 000 000
所以,设置特殊权限(stick bit)的命令应该是:chmod 1755 log
设置特殊权限后,ls -dl 查看该目录:drwxr-xr-t 2 gg gg 4096 5月 11 19:05 log ( 注意 other 的 x 位是代表特殊权限的字母 t )
取消该特殊权限的命令:chmod 755 log 。如此 stick bit的权限就没有了。
再次 ls -dl 查看该目录: drwxr-xr-x 2 gg gg 4096 5月 11 19:15 log ( 注意最后一位已经变为代表普通权限的字母x )
需要注意的是,最前面一位 ”1“ 就是特殊权限位。其他两个特殊权限的设置也类似。setuid使用不是无限制的。出于安全目的,只能应用在Linux ELF格式二进制文件上,而不能用于脚本文件。
三、高级权限
ACL(Access Control List),访问控制列表是Linux下的的高级权限机制,可实现对文件、目录的灵活权限控制。ACL 允许针对不同用户、
不同组对同一个目标文件、目录进行权限设置,而不受UGO限制。
在一个文件系统上使用ACL需要在挂载文件系统的时候打开ACL功能。而根分区(ROOT)默认挂载的时候支持ACL。
命令:mount -o acl /挂载路径
例子:mount -o acl /dev/sdb1 /mnt
查看一个文件的ACL设置的命令: getfacl file
(针对一个用户)为一个文件设置指定用户的权限的命令: setfacl -m u:username:rwx filename
(针对一个组)为一个文件设置指定组的权限的命令: setfacl -m g:groupname:r-x filename
删除一个ACL设置的命令: setfacl -x u:username filename
;9. 在linux中怎么给文件夹赋权限
在linux中给文件夹赋权限的步骤如下:
1.首先,咱们用客户端工具(工具很多,我用的是xshell),用需要建立的文件夹的账户登录系统,例如我现在是用的Root用户。红色框框内,写着root证明,登录的用户没有问题。
10. Linux 权限管理命令
命令名称:chmod
命令英文原意:change the permissions mode of a file
有两种角色可以执行该命令,一种是 root 用户,另一种就是文件的所有者。
语法:
大括号里的内容表示只能选一个,其中 u 表示该文件的所有者,g 表示所属组,o 表示其他人,a 表示所有角色。
比如,给 abc.txt 文件的所属组加一个写的权限:
也可以同时做多个授权,比如给文件所有者加上执行权限,给其他人去掉写权限:
还可以用数字表示权限。权限的数字表示:
如果一个文件的权限是 rw-r--r--,那么翻译成数字就是 644,反过来,如果要更改文件的权限,可以这样写:
这样文件的权限就改成 rw-r----- 了。
还有一个选项 -R 是递归修改权限,该选项的功能是更改某个目录的权限的同时更改该目录下所有的子目录和文件的权限。
命令名称: chown
英文原意:change owner
语法:chown 用户名 文件
只有管理员账户可以更改文件的所属用户。
例如:
命令名称:chgrp
英文原意:change group
语法:chgrp 组名 文件
例如:
命令名称:umask
使用命令 umask -S 可以查看新建文件或目录的默认权限。
现在显示的是新建目录的默认权限,该目录的所有者的默认权限是 rwx,所属组的默认权限是 rx,其他人的默认权限是 rx。为什么说这是新建目录的默认权限而不是新建文件的默认权限,如果你查看新建文件的权限,会发现是 rw-r--r-- ,与新建目录的权限 rwxr-xr-x 相比,每种角色的权限都少了 x。所以说,只要知道了新建目录的默认权限,再去掉 x 权限,就是新建文件的默认权限。
如果直接执行 umask 命令,会显示一个数字。
这个数字叫做权限掩码,用 777 减去其后三位 022 就得到了每种角色的权限,即 755。翻译成字母就是 rwxr-xr-x 。
若想更改新建目录或文件的默认权限,只需执行 umask 权限掩码 即可。
例如,我想把新建目录的默认权限改成 rwxr-r-- ,翻译成数字就是 744,再用 777 减去 744 就得到了权限掩码 033。
虽然 Linux 系统的目录或文件的默认权限可以修改,但是 Linux 这样分配权限是有一定道理的,最好不要轻易修改。