Linux 权限设置
一.文件和目录权限
在Linux系统中,用户可以对每一个文件或目录都具有访问权限,这些访问权限决定了谁能访问,以及如何访问这些文件和目录。
1.文件权限简介
在Linux系统中,每一位用户都有对文件或目录的读取、写入和执行权限。第1套权限控制访问自己的文件权限,即所有者权限。第2套权限控制用户组访问其中一个用户的文件的权限。第3套权限控制其他所有用户访问一个用户的文件的权限。这3套权限赋予用户不同类型(即所有者、用户组和其他用户)的读取、写入及执行权限。
2.一般权限
用"ls -l"命令可以显示文件的详细信息,其中包括权限,如下所示:
root@redhat2 ~]# ls -l /root
total 96
-rw-------. 1 root root 2623 Jun 2 2014 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 Jun 3 2014 Desktop
drwxr-xr-x. 2 root root 4096 Jun 2 2014 Documents
drwxr-xr-x. 2 root root 4096 Jun 2 2014 Downloads
-rw-r--r--. 1 root root 40730 Jun 2 2014 install.log
-rw-r--r--. 1 root root 9272 Jun 2 2014 install.log.syslog
第一个字符一搬用来区分文件的类型,表9-2列出了Linux系统中常用的文件类型。
第2~10个字符当中的每3个为一组,左边3个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这9个字符代表的意义如下。
(1).r (读取):对文件而言,该用户具有读取文件内容的权限;对目录来说,该用户具有浏览目录的权限。
(2).w(写入):对文件而言,该用户具有新增、修改文件内容的权限;对目录来说,该用户具有删除、移动目录内文件的权限。
(3).X(执行):对文件而言,该用户具有执行的权限;对目录来说,该用户具有进入目录的权限。
(4).-:表示不具有该项权限。
下面举例说明:
-rwx------ //文件所有者对文件具有读取、写入和执行的权限
-rwxr--r-- //文件所有者具有读、写与执行的权限,其他用户则具有读取的权限。
-rw-rw-r-x //文件所有者和同组用户对文件具有读写的权限,而其他用户仅具有读取和执行的权限。
Drwx-x--x //目录所有者具有读写和进入目录的权限,其他用户能进入该目录,却无法读取任何数据。
Drwx------ //除了目录所有者具有所有的权限之外,其他用户对该目录没有任何权限。
每个用户都有自己的主目录,通常集中放置在/home目录下,这些主目录的默认权限为"rwx------",使用如下命令查看主目录权限。
[root@redhat2 ~]# ls -l /home
total 20
drwx------ 4 502 502 4096 Jan 7 05:29 lisi
drwx------ 4 wang wang 4096 Jan 13 06:33 wang
drwx------ 4 newuser newuser 4096 Jan 7 05:53 www
drwx------. 4 yang yang 4096 Jun 2 2014 yang
drwx------ 4 zhang zhang 4096 Jan 13 06:56 zhang
[root@redhat2 ~]#
3.特殊权限
除了一般权限外,还有所谓的特殊权限,用户若无特殊需求,不需要启用这些权限,避免出现安全漏洞。
特殊权限:SUID、SGID、Sticky
二.权限设置
只有系统管理员和文件的所有者才可以更改文件或目录的权限,更改文件或目录权限的方法一般有3种。
1.文字设定法
通过文字设定法更改权限需要使用chmod命令,chmod的命令格式如下:
[root@redhat2 ~]# chmod --help
Usage: chmod [OPTION]... MODE[,MODE]... FILE...
or: chmod [OPTION]... OCTAL-MODE FILE...
or: chmod [OPTION]... --reference=RFILE FILE...
Change the mode of each FILE to MODE.
-c, --changes like verbose but report only when a change is made
--no-preserve-root do not treat `/' specially (the default)
--preserve-root fail to operate recursively on `/'
-f, --silent, --quiet suppress most error messages
-v, --verbose output a diagnostic for every file processed
--reference=RFILE use RFILE's mode instead of MODE values
-R, --recursive change files and directories recursively
--help display this help and exit
--version output version information and exit
Each MODE is of the form `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.
命令中各参数的含义如下:
u:表示所有者,即文件或目录的所有者。
g:表示用户组,即与文件属主有相同组ID的所有用户。
o:表示其他用户。
a:表示所有用户,它是系统默认值。
操作符号含义如下:
+:添加某个权限。
-:取消某个权限。
=:赋予给定权限并取消原先权限。
设置mode所表示的权限可用下述字母的任意组合。
r:可读。
w:可写。
x:可执行。
s:在文件执行时把进程的属主或组ID置为该文件的文件属主。"u+s"可以设置文件的SUID权限,"g+s"可以设置文件的SGID权限。
t:保存程序的文本到交换设备上。
在一个命令行中可给出多个权限方式,其间用逗号隔开。
例1:添加所有者对a文件的写入权限。
[root@redhat2 ~]# ls -l a
-r--r--r-- 1 root root 0 Jan 19 05:19 a
[root@redhat2 ~]#
//可以看到a文件现在所有者的权限是读取。
[root@redhat2 ~]# ls -l a
-rw-r--r-- 1 root root 0 Jan 19 05:19 a
[root@redhat2 ~]#
//更改权限以后,所有者对a文件多了写入的权限。
例2:取消所有者对a文件的读取权限。
[root@redhat2 ~]# chmod u-r a
[root@redhat2 ~]# ls -l a
--w-r--r-- 1 root root 0 Jan 19 05:19 a
[root@redhat2 ~]#
//查看文件权限,可以看到文件a的所有者权限已经没有读取了。
例3:重新分配同组用户对a文件有写入的权限。
[root@redhat2 ~]# chmod g=w a
[root@redhat2 ~]# ls -l a
--w--w-r-- 1 root root 0 Jan 19 05:19 a
[root@redhat2 ~]#
//可以看到,同组用户原先的权限没有了,现在重新分配的是写入权限。
例4:更改a文件权限,添加所有者为读取、写入权限,同组用户为读取权限,其他用户读取、写入和执行的权限。
[root@redhat2 ~]# chmod u+rw,g+r,o+wrx a
[root@redhat2 ~]# ls -l a
-rw-rw-rwx 1 root root 0 Jan 19 05:19 a
例5:取消所有用户的读取、写入和执行权限。
[root@redhat2 ~]# chmod a-rwx a
[root@redhat2 ~]# ls -l a
---------- 1 root root 0 Jan 19 05:19 a
例6:添加a文件的特殊权限为SGID。
[root@redhat2 ~]# ls -l a
------S--- 1 root root 0 Jan 19 05:19 a
2.数字设定法
使用数字设定法更改文件权限,首先必须了解数字表示的含义:0表示没有权限,1表示可执行权限,2表示写入权限,4表示读取权限,然后将其相加。所以数字属性的格式应为3个0~7的8进制数,其顺序是(u),(g),(o)。
(1) r:对应数值4。
(2) w:对应数值2。
(3) x:对应数值1。
(4)-:对应数值0。
下面举几个例子:
(1).-rwx------:用数字表示为700。
(2).-rwxr---r--:用数字表示为744。
(3).-rw-rw-r-x:用数字表示为665。
(4).drwx--x--x:用数字表示为711。
(5).drwx------:用数字表示为700。
使用数字设定法更改文件权限,chmod的命令格式如下:
Chmod [n1n2n3] [文件或目录名]
命令中各选项的含义如下。
n1:所有者的权限。
n2:同组用户的权限。
n3:其他用户的权限。
例1:设置a文件权限,所有者拥有读取、写入和执行的权限。
[root@redhat2 ~]# ls -l a
-r--r--r-- 1 root root 0 Jan 19 05:19 a
[root@redhat2 ~]# chmod 700 a
[root@redhat2 ~]# ls -l a
-rwx------ 1 root root 0 Jan 19 05:19 a
例2:设置a文件权限,所有者拥有读取,同组用户有读取、写入和执行的权限。
[root@redhat2 ~]# ls -l a
-r--rwx--- 1 root root 0 Jan 19 05:19 a
例3:设置a文件权限,其他用户拥有读取、写入和执行的权限。
[root@redhat2 ~]# chmod 007 a
[root@redhat2 ~]# ls -l a
-------rwx 1 root root 0 Jan 19 05:19 a
假如想一次修改某个目录下所有文件的权限(包括子目录中的文件权限),要使用参数"-R"表示启动递归处理。
例:设置/home/user目录连同他的子文件夹的权限为777。
[root@redhat2 home]# mkdir /home/user
[root@redhat2 home]# touch /home/user/abc
[root@redhat2 home]# chmod -R 777 /home/user
//表示将整个/home/user目录及其中的文件和子目录的权限都设置读取、写入和执行
[root@redhat2 home]# ls -l /home|grep user
drwxrwxrwx 2 root root 4096 Jan 19 06:14 user
[root@redhat2 user]# ls -l
total 0
-rwxrwxrwx 1 root root 0 Jan 19 06:14 abc
三.更改文件和目录的所有权
文件和目录的创建者默认就具有所有权,他们对该文件和目录具有任何权限,可以进行任何操作。
1.chown命令
使用chown命令可以更改文件和目录的所有者和用户组。
命令语法:
chown [-R][用户.组][文件|目录]
命令中参数的含义如下。
-R:将下级子目录下的所有文件和目录的所有权一起更改。
例1:将文件a的所有者改成newuser。
[root@redhat2 ~]# ls -l a
-r--r--r-- 1 root root 0 Jan 19 05:19 a
[root@redhat2 ~]# chown :newuser a
[root@redhat2 ~]# ls -l a
-r--r--r-- 1 root newuser 0 Jan 19 05:19 a
[root@redhat2 ~]#
例2:将文件a的所有者和用户组一起改成root。
[root@redhat2 ~]# chown root.root a
[root@redhat2 ~]# ls -l a
-r--r--r-- 1 root root 0 Jan 19 05:19 a
例3:将文件a的用户组改成newuser。
[root@redhat2 ~]# chown .newuser a
[root@redhat2 ~]# ls -l a
-r--r--r-- 1 root newuser 0 Jan 19 05:19 a
[root@redhat2 ~]#
例4:将目录/root/b连同它的下级文件/root/b/cc的所有者和用户组一起更改为newuser。
[root@redhat2 ~]# ls -l /root |grep b
drwxr-xr-x 2 root root 4096 Jan 20 05:52 b
[root@redhat2 ~]# ls -l /root/b/ccc
-rw-r--r-- 1 root root 0 Jan 20 05:52 /root/b/ccc
//查看目录/root/b和文件/root/b/ccc所有者和用户组,当前为root
[root@redhat2 ~]# chown -R newuser.newuser /root/b
[root@redhat2 ~]# ls -l /root |grep b
drwxr-xr-x 2 newuser newuser 4096 Jan 20 05:52 b
[root@redhat2 ~]# ls -l /root/b/ccc
-rw-r--r-- 1 newuser newuser 0 Jan 20 05:52 /root/b/ccc
[root@redhat2 ~]#
//查看目录/root/b和文件/root/b/ccc所有者和用户组,当前为newuser。
2.chgrp命令
使用chgrp命令可以更改文件或目录所属的组。
命令语法:
chgrp [选项] [用户组] [文件] [目录]
说明:其中用户组可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。
命令中选项的含义如下。
-R:递归式地改变指定目录及其下的所有子目录和文件的所属的组。
Linux 权限设置的更多相关文章
- Linux 权限设置chmod
Linux中设置权限,一般用chmod命令 1.介绍 权限设置chmod 功能:改变权限命令.常用参数: 1=x(执行权execute) 2=w(写权write) 4=r(读权Read) setuid ...
- Linux 权限设置和 SUID, SGID 以及粘滞位sticky bit
suid是指在执行suid程序的过程中,去访问其他文件时拥有suid程序属主的权限,而不是指对suid程序本身拥有suid程序属主的权限! 一. Linux 文件权限的表示方法 文件权限用 12 个二 ...
- Linux权限设置基础
chmod linux系统中文件或目录有两个属性:访问权限和文件所有者,简称“权限”和“归属”. 访问权限包括:读取.写入.可执行. 归属包括:属主(拥有该文件的用户).属组(拥有该文件的用户组) ...
- linux权限设置(开放某个文件夹给指定用户)
问题背景: 今天想把自己的数据集开放给同事a,只允许其读,不允许写. 操作: step1: 查看该文件夹属于哪一个用户,哪一个组 ls 文件夹 -lstep2: usermod -a -G 指定文件夹 ...
- Linux文件/目录权限设置命令:chmod
文件/目录权限设置命令:chmod 这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限.该命令有两种用法: 用包含字母和操作符表达式的文字设定法 其语法格式为:chmod [w ...
- linux笔记六-------文件权限设置
1.文件(目录)权限本身划分:读read 写write 执行execute 权限从用户的角度划分:主人权限user 同组用户权限group 其他组用户的权限other music. ...
- 别人的Linux私房菜(14)Linux账号管理和ACL权限设置
用户标识符UID.GID 用户的账号信息,主要是指UID对应.组和GID对应 检查系统中是否存在用户bin:id bin 登录shell验证账号密码的步骤:找到/etc/passwd核对是否存在账号, ...
- Linux文件权限设置
基本概念 https://linux.cn/article-7418-1.html#3_8880 用户管理 文件权限设置 -添加用户账户08% -理解 /etc/passwd 中的内容12% -理解 ...
- Linux系统Web网站目录和文件安全权限设置
查看Linux文件的权限:ls -l 文件名称查看linux文件夹的权限:ls -ld 文件夹名称(所在目录)例如: drwxr-xr-x 2 root root 4096 2009-01-14 17 ...
随机推荐
- PullToRefreshGridView刷新加载2
@XStreamAlias("result")public class Myresult { @XStreamImplicit(itemFieldName="item&q ...
- iOS开发之cell多按钮
iOS开发经常出现cell需要多个按钮,一般以为要导入第三方框架.但其实iOS 8以后,系统提供了UITableViewRowAction以及新的delegate方法,使得自定义一些操作变得非常容易. ...
- 第五篇T语言实例开发,数组空间使用
数组空间使用 排序算法 在实际中,当有多个无序数据时.我们就需要多数据进行排序 典型的排序:冒泡排序 排序原理 冒泡排序算法的运作如下:(从后往前) 比较相邻的元素.如果第一个比第二个大,就交换他们两 ...
- 破解版windows 7(旗舰版)下安装并使用vagrant统一开发环境
参考百度经验:http://jingyan.baidu.com/article/5553fa82c158bb65a23934be.html,事先对win7进行破解后的三个文件进行还原,否则会导致vir ...
- Linux下压缩mp3文件
apt-get install lame lame -b 64 a.mp3 b.mp3 lame是压缩mp3的一个小工具 参数 -b 64 是输出文件的采样率64 a.mp3 是源文件 b.mp3 是 ...
- java 运算符使表达式结果类型自动提升
1.表达式中的自动类型提升: 表达式求值时,Java自动的隐含的将每个byte.short或char操作数提升为int类型,这些类型的包装类型也是可以的. 例如:short s1 = 1; s1 = ...
- 各种模板(part 2)
堆: using namespace dui //堆 { #include<queue> //需要的库 priority_queue < int > Q; //定义一个Q的大根 ...
- 【转载】ANSYS完全法与模态叠加法瞬态分析实例
原文地址:http://www.caetecc.com/thread-2172-1-1.html ! 半脉冲载荷 --- 模态叠加法fini/clear,nostart/PREP7ET,1,BEAM4 ...
- servlet有关概念
关于servlet的概念 URL.URN与URi HTTP GET请求,POST请求(区别.适用) 编码 动态网页(GCI.PHP.ASP.JSP等)与静态网页 Model2 静态网页:指的是请求服务 ...
- 国内最新Unity3D视频教程合辑
麦子学院最新Unity3D视频教程上线啦,此为现目前国内最全.最新Unity3D教程,分享给广大小伙伴,希望对大家学习Unity3D有帮助: 第一阶段:Unity3D概要及入门 零基础学C#开发 Un ...