Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)权限简介
Linux系统上对文件linux给账号授权命令的权限有着严格的控制,用于如果相对某个文件执行某种操作 , 必须具有对应的权限方可执行成功 。
Linux下文件的权限类型一般包括读,写 , 执行 。对应字母为 r、w、x 。
Linux下权限的粒度有
拥有者 、群组 、其它组 三种 。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限 。通常情况下,一个文件只能归属于一个用户和组 ,
如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组 。
Linux上通常使用chmod命令对文件的权限进行设置和更改 。
一、快速入门
更改文件权限 (chmod命令)
一般使用格式
chmod [可选项]
可选项linux给账号授权命令:-c, --changeslike verbose but report onlywhena change is made (若该档案权限确实已经更改,才显示其更改动作)-f, --silent, --quietsuppress most error messages(若该档案权限无法被更改也不要显示错误讯息)-v, --verboseoutput a diagnosticforevery file processed(显示权限变更的详细资料)--no-preserve-rootdonottreat'/'specially (the default)--preserve-rootfail to operate recursively on'/'--reference=RFILEuse RFILE's mode instead of MODE values-R, --recursivechange 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 = 421 = 7 rw = 42 = 6 rx = 4
1 = 5 即
若要同时设置
rwx (可读写运行) 权限则将该权限位 设置 为 421 = 7 若要同时设置 rw- (可读写不可运行)权限则将该权限位 设置
为 42 = 6 若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置 为 41 = 5
上面我们提到 , 每个文件都可以针对三个粒度 , 设置不同的rwx(读写执行)权限 。即我们可以用用三个8进制数字分别表示 拥有者 、群组 、其它组( u、 g 、o)的权限详情,并用chmod直接加三个8进制数字的方式直接改变文件权限 。语法格式为 :
chmodfile...
其中a,b,c各为一个数字 , 分别代表User、Group、及Other的权限 。相当于简化版的chmod u=权限,g=权限,o=权限file...而此处的权限将用8进制的数字来表示User、Group、及Other的读、写、执行权限
范例:
设置所有人可以读写及执行
设置拥有者可读写,其他人不可读写执行
更改文件拥有者(chown命令)
【linux给账号授权命令 linux用户授权命令】 linux/Unix 是多人多工作业系统,每个的文件都有拥有者(所有者),如果我们想变更文件的拥有者(利用 chown 将文件拥有者加以改变),一般只有系统管理员(root)拥有此操作权限 , 而普通用户则没有权限将自己或者别人的文件的拥有者设置为别人 。
语法格式:
chown [可选项] user[:group] file...
使用权限:root说明:[可选项] :同上文chmoduser :新的文件拥有者的使用者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赋予一般权限的命令):
chmodu sfilename设置suid位chmodu-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命令设置:
chmodt 文件列表..
十二位的权限表示方法
附加权限除了用十位权限形式表示外,还可以用用十二位字符表示 。
11109876543210SGT 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位八进制数表示 。类似于正常权限的数字权限赋值模式(使用三位八进制数字赋值)
chmodfile...
我们可以进一步使用4位八进制数字同时赋值正常权限和附加权限 。
chmodfile...
其中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用户的权限,从而顺利上网 。
Linux命令行执行root权限的命令Linux在终端中输入命令“su”就能获取root权限 。
1、打开一台Linux电脑,然后在电脑上同时按住“Ctrl Alt T”按键 , 打开一个运行命令的终端,如下图所示为打开终端后的窗口 。
2、在终端命令窗口输入命令“sudo passwd root”,然后输入登录密码,如下图所示 。
3、最后输入命令“su”,然后再输入一次密码,就获取到系统的root权限了,如下图所示 。
linux怎么给用户root权限赋予用户root权限的方法linux给账号授权命令:
方法一:修改 /etc/sudoers 文件linux给账号授权命令,找到下面一行linux给账号授权命令,把前面的注释(#)去掉
## Allows people in group wheel to run all commands
%wheelALL=(ALL)ALL
然后修改用户,使其属于root组(wheel),命令如下:
#usermod -g root tommy
修改完毕,现在可以用tommy帐号登录,然后用命令 su – ,即可获得root权限进行操作 。
方法二:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行 , 如下所示:
## Allow root to run any commands anywhere
rootALL=(ALL)ALL
tommyALL=(ALL)ALL
修改完毕,现在可以用tommy帐号登录,然后用命令 sudo – ,即可获得root权限进行操作 。
方法三:修改 /etc/passwd 文件 , 找到如下行,把用户ID修改为 0 ,如下所示:
tommy:x:0:33:tommy:/data/webroot:/bin/bash
如何在linux中 用root用户给其他用户权限、添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy //修改密码 Changing password for user tommy. New UNIX password: //在这里输入新密码 Retype new UNIX password: //再次输入新密码 passwd: all authentication tokens updated successfully. 2、赋予root权限方法一:修改/etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉 ## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL 然后修改用户 , 使其属于root组(wheel) , 命令如下: #usermod -g root tommy 修改完毕,现在可以用tommy帐号登录 , 然后用命令 su - ,即可获得root权限进行操作
linux 怎么查看某个用户所有的权限linux中查看某个用户权限linux给账号授权命令的命令为( 以mysql用户为例):
cat/etc/passwd|grep mysql
在Linux/etc/passwd中一行记录对应着一个用户linux给账号授权命令,每行记录又被冒号(:)分隔为7个字段,其格式如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
扩展资料:
在Linux /etc/passwd 用户信息中各字段(列)linux给账号授权命令的用途介绍
1、用户名(login_name):用于区分不同的用户 。注册的名称在同一系统中是唯一的 。在许多系统上,此字段的长度限制为8个字符(字母或数字) 。
2、口令(passwd):用于验证用户的合法性,超级用户root或某些高级用户可以使用系统命令passwd来更改系统中所有用户的密码,普通用户也可以使用passwd命令来更改自己的口令 。
3、用户识别号(UID):UID用于区分不同的用户 。在系统内部管理进程和文件保护时,请使用UID字段 。在Linux系统中,可以使用注册名称和UID来标识用户,但是UID对系统来说更重要 , 而对于用户来说注册名使用起来更方便 。
4、组标识号(GID):与UID一样 , 用户的组标识号也存储在passwd文件中 。在现代Unix / Linux中 , 每个用户可以同时属于多个组 。除linux给账号授权命令了指定passwd所属的基本组外 , 还可以在/ etc / group文件中指定组中包含的用户 。
5、用户名(user_name):包含有关用户的一些信息,例如用户的真实姓名,办公室地址,联系电话等 。在Linux系统中,mail和finger之类的程序使用此信息来标识系统的用户 。
6、用户主目录(home_directory):此字段定义单个用户的主目录 。当用户登录时,Shell将使用该目录作为用户的工作目录 。
linux怎样修改用户权限看你是要给用户本身修改权限linux给账号授权命令,还是修改文件linux给账号授权命令的权限让其它用户可以访问执行 。
一般如果你修改用户本身的权限linux给账号授权命令,也没有太多好改的,一般用户创建用户(useradd)之后,用户就会有一个默认或指定的 userid和groupid. 一般对UNIX系统下的文件 , 都分为“user自己、usergroup、其它user”可以“读、写、执行”三类 , 用ls -la可以看到,如linux给账号授权命令:
# ls -l
-rwxr-xr-x1 rootbin62528 Jan 232005 zip
其中r表示可以 read/读,w表示可以 write/写,x表示可以 execute/执行 。
userid一般都是唯一的,但你可以修改自己user的group信息,以加入需要的用户组里面访问特定的文件 。
groupadd :添加用户组linux给账号授权命令;
groupdel :删除用户组;
groupmod :修改用户组信息
一般我们日常碰到要修改用户权限的,往往是要么修改一下用户的gorupid,通过上面命令可以改;要么是把普通用户改成具有超级权限的用户 , 这个一般自己不能直接改 , 只能是root或有root权限的用户才能帮你改 , 在/etc/passwd文件里面,找到对应userid那一行,将userid那一列你的id改成0,然后强制保存退出 。这时候你的这个用户就有超级用户权限了 。改用户的groupid也可以这样改 。
如果是改某个文件的属性,就比较简单了,直接用chmod命令就可以了 , 我一般直接后面接数字,如果要给rwx的权限 , 就给7,rw-,就是6 , r--就是4(二进制的,对应x -1,w-2,r -4) , 比如要给某个文件用户自己rwx权限,用户group内 r-x的权限 , 其它人r--只读,那么用chmod命令就可以:
# chomd 754 finename
上面都是自己根据以往经验总结写的 , 鼓励一下原创吧,呵呵 。
关于linux给账号授权命令和linux用户授权命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 这个电视这是什么歌,这个电视这是什么歌曲
- 希捷固态硬盘分区怎么设置,希捷固态硬盘
- 经营策略游戏大全,经营策略游戏大全
- 最新网络格斗游戏,网络格斗类游戏
- windows系统没有的简单介绍
- 微信里怎么卸载视频号,微信如何卸载视频号
- 趣味益智休闲游戏,益智休闲小游戏
- linux安装pg9.5.9,Linux安装oracle
- linux回退命令 linux如何返回命令行