Linux 权限设置

一.文件和目录权限

在Linux系统中,用户可以对每一个文件或目录都具有访问权限,这些访问权限决定了谁能访问,以及如何访问这些文件和目录。

1.文件权限简介

在Linux系统中,每一位用户都有对文件或目录的读取、写入和执行权限。第1套权限控制访问自己的文件权限,即所有者权限。第2套权限控制用户组访问其中一个用户的文件的权限。第3套权限控制其他所有用户访问一个用户的文件的权限。这3套权限赋予用户不同类型(即所有者、用户组和其他用户)的读取、写入及执行权限。

2.一般权限

用"ls -l"命令可以显示文件的详细信息,其中包括权限,如下所示:

[email protected] ~]# 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------",使用如下命令查看主目录权限。

[[email protected] ~]# 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

[[email protected] ~]#

3.特殊权限

除了一般权限外,还有所谓的特殊权限,用户若无特殊需求,不需要启用这些权限,避免出现安全漏洞。

特殊权限:SUID、SGID、Sticky

二.权限设置

只有系统管理员和文件的所有者才可以更改文件或目录的权限,更改文件或目录权限的方法一般有3种。

1.文字设定法

通过文字设定法更改权限需要使用chmod命令,chmod的命令格式如下:

[[email protected] ~]# 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文件的写入权限。

[[email protected] ~]# ls -l a

-r--r--r-- 1 root root 0 Jan 19 05:19 a

[[email protected] ~]#

//可以看到a文件现在所有者的权限是读取。

[[email protected] ~]# ls -l a

-rw-r--r-- 1 root root 0 Jan 19 05:19 a

[[email protected] ~]#

//更改权限以后,所有者对a文件多了写入的权限。

例2:取消所有者对a文件的读取权限。

[[email protected] ~]# chmod u-r a

[[email protected] ~]# ls -l a

--w-r--r-- 1 root root 0 Jan 19 05:19 a

[[email protected] ~]#

//查看文件权限,可以看到文件a的所有者权限已经没有读取了。

例3:重新分配同组用户对a文件有写入的权限。

[[email protected] ~]# chmod g=w a

[[email protected] ~]# ls -l a

--w--w-r-- 1 root root 0 Jan 19 05:19 a

[[email protected] ~]#

//可以看到,同组用户原先的权限没有了,现在重新分配的是写入权限。

例4:更改a文件权限,添加所有者为读取、写入权限,同组用户为读取权限,其他用户读取、写入和执行的权限。

[[email protected] ~]# chmod u+rw,g+r,o+wrx a

[[email protected] ~]# ls -l a

-rw-rw-rwx 1 root root 0 Jan 19 05:19 a

例5:取消所有用户的读取、写入和执行权限。

[[email protected] ~]# chmod a-rwx a

[[email protected] ~]# ls -l a

---------- 1 root root 0 Jan 19 05:19 a

例6:添加a文件的特殊权限为SGID。

[[email protected] ~]# 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文件权限,所有者拥有读取、写入和执行的权限。

[[email protected] ~]# ls -l a

-r--r--r-- 1 root root 0 Jan 19 05:19 a

[[email protected] ~]# chmod 700 a

[[email protected] ~]# ls -l a

-rwx------ 1 root root 0 Jan 19 05:19 a

例2:设置a文件权限,所有者拥有读取,同组用户有读取、写入和执行的权限。

[[email protected] ~]# ls -l a

-r--rwx--- 1 root root 0 Jan 19 05:19 a

例3:设置a文件权限,其他用户拥有读取、写入和执行的权限。

[[email protected] ~]# chmod 007 a

[[email protected] ~]# ls -l a

-------rwx 1 root root 0 Jan 19 05:19 a

假如想一次修改某个目录下所有文件的权限(包括子目录中的文件权限),要使用参数"-R"表示启动递归处理。

例:设置/home/user目录连同他的子文件夹的权限为777。

[[email protected] home]# mkdir /home/user

[[email protected] home]# touch /home/user/abc

[[email protected] home]# chmod -R 777 /home/user

//表示将整个/home/user目录及其中的文件和子目录的权限都设置读取、写入和执行

[[email protected] home]# ls -l /home|grep user

drwxrwxrwx  2 root    root    4096 Jan 19 06:14 user

[[email protected] user]# ls -l

total 0

-rwxrwxrwx 1 root root 0 Jan 19 06:14 abc

三.更改文件和目录的所有权

文件和目录的创建者默认就具有所有权,他们对该文件和目录具有任何权限,可以进行任何操作。

1.chown命令

使用chown命令可以更改文件和目录的所有者和用户组。

命令语法:

chown [-R][用户.组][文件|目录]

命令中参数的含义如下。

-R:将下级子目录下的所有文件和目录的所有权一起更改。

例1:将文件a的所有者改成newuser。

[[email protected] ~]# ls -l a

-r--r--r-- 1 root root 0 Jan 19 05:19 a

[[email protected] ~]# chown :newuser a

[[email protected] ~]# ls -l a

-r--r--r-- 1 root newuser 0 Jan 19 05:19 a

[[email protected] ~]#

例2:将文件a的所有者和用户组一起改成root。

[[email protected] ~]# chown root.root a

[[email protected] ~]# ls -l a

-r--r--r-- 1 root root 0 Jan 19 05:19 a

例3:将文件a的用户组改成newuser。

[[email protected] ~]# chown .newuser a

[[email protected] ~]# ls -l a

-r--r--r-- 1 root newuser 0 Jan 19 05:19 a

[[email protected] ~]#

例4:将目录/root/b连同它的下级文件/root/b/cc的所有者和用户组一起更改为newuser。

[[email protected] ~]# ls -l /root |grep b

drwxr-xr-x  2 root root     4096 Jan 20 05:52 b

[[email protected] ~]# 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

[[email protected] ~]# chown -R newuser.newuser /root/b

[[email protected] ~]# ls -l /root |grep b

drwxr-xr-x  2 newuser newuser  4096 Jan 20 05:52 b

[[email protected] ~]# ls -l /root/b/ccc

-rw-r--r-- 1 newuser newuser 0 Jan 20 05:52 /root/b/ccc

[[email protected] ~]#

//查看目录/root/b和文件/root/b/ccc所有者和用户组,当前为newuser。

2.chgrp命令

使用chgrp命令可以更改文件或目录所属的组。

命令语法:

chgrp [选项] [用户组] [文件] [目录]

说明:其中用户组可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。

命令中选项的含义如下。

-R:递归式地改变指定目录及其下的所有子目录和文件的所属的组。

时间: 2024-11-05 12:26:09

Linux 权限设置的相关文章

Linux 权限设置chmod

Linux中设置权限,一般用chmod命令 1.介绍 权限设置chmod 功能:改变权限命令.常用参数: 1=x(执行权execute) 2=w(写权write) 4=r(读权Read) setuid 设置后,文件拥有文件所有者的权限如root权限 setgid 设置后,目录下创建的文件件拥有此目录所属组的权限 stickybit 设置后,文件不可被删除操作提示:chmod 参数 文件或目录名 2.文件权限解析 如上图,这是一个txt文件的权限属性,ower即为文件创建者对文件可操作的权限,gr

linux权限设置(开放某个文件夹给指定用户)

问题背景: 今天想把自己的数据集开放给同事a,只允许其读,不允许写. 操作: step1: 查看该文件夹属于哪一个用户,哪一个组 ls 文件夹 -lstep2: usermod -a -G 指定文件夹的组名 要分配的用户名step3: chmod 754 指定文件夹名 延伸: 1 权限的设置 chmod -rwxrwxrwx 三个rwx分别属于user,group,others把一个文件的权限全部放开 就是chmod 777 filechmod a+rwx 其实相当于 chmod 777a:al

Linux权限设置

权限管理  owner属主 group属组 chown 修改属主 chmod 修改权限 属主(owner)  属组(group)  其它(other) 常用的权限有三种  简称为 rwx read         读 write        写 execute        执行 文件: r:可以使用内容查看类的命令来显示文件保存的内容  cat  more  less 等等 w:可以编辑文件里面的内容 x:可以将其发起一个进程运行 目录: r:可以使用ls命令查看文件夹下面的信息  如果只有

Linux运维六:用户管理及用户权限设置

Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也可以帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和各自的口令.用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录. 实现用户账号的管理,要完成的工作主要有如下几个方面: · 用户账号的添加.删除与修改. ·

linux 用户权限设置

# useradd –d /usr/sam -m sam 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录). 假设当前用户是sam,则下面的命令修改该用户自己的口令: # passwd Old password:****** New password:******* Re-enter new password:******* 如果是超级用户,可以用下列形式指定任何用户的口令: # passwd sam New

Linux 搭建Sftp服务并进行权限设置

一.最近接到一个项目组的需求搭建文件服务器,需求如下 1.用户:amovs.upload.download 2.组:amovs.dataload.download 3.具体需求是upload和download的家目录都为同一个目录dataload 4.upload能上传也就是能读能写.download用户只能下载 5.amovs因需要进行批量自动化删除日志等操作,所以对于dataload目录权限需要读.写权限 6.并且upload和download只能使用sftp软件上传和下载文件使用,不能作为

Linux下ThinkPHP网站目录权限设置

在windows上运行好好的项目,迁移到Linux上就遇到了很多问题,其中最为重要的是网站目录权限的设置,当然简单期间你可以用 命令 "chmod 777 -R you web site" ,这样你就不用担心项目运行的时候会涉及到权限问题.通常来说如果你的项目时部署在公网或者是部 署在租用的Linux服务器上不建议这么做,应为如果这样设置了那么任何用户都可以对这个站点下的文件,目录进行操作,这样也会影响网站的运营, 同样不安全.下面以ubuntu14.4 系统为主进行分析. 最简单的做

linux如何设置用户权限

linux与用户权限设置: 1.添加用户 首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy //修改密码 Changing password for user tommy. New UNIX password: //在这里输入新密码 Retype new UNIX password: //再次输入新密码 passwd: all authentication tokens updated success

linux 文件夹-文件权限设置

只设置文件夹权限为755 文件权限为644find -type d -exec chmod 755 {} \;  find -type f -exec chmod 644 {} \;  或者  find -type d|xargs chmod 755  find -type f|xargs chmod 644 linux 文件夹-文件权限设置,布布扣,bubuko.com