怎么样给linux文件添加可执行权限 (如何给文件加锁 linux)
sudo chmod +x filename
Linux文件权限修改用chmod命令,添加可执行权限的命令类似于下面这样:
chmod a+x 文件名
x表示可执行权限,a表示all,就是用户的(user)、用户组(group)、其他用户(others)三种身份的可执行权限都添拍烂加上。如果只添袭埋漏加用户的权限(user)、用户组(group)、其他用户(others)三种身份中的其中一个,可以用u、g、o三个字母来代替加号前面的a。比如:
chmod u+x,g+x,o+x 文件名
参数中的文件名是一个文件的路径液扰,如果是当前目录的文件,可以不加路径,只给个文件名。
如果你曾经用过linux下的ls -al命令,那么你一定会发现,返回的结果中前面总是有一串符号
就象这样:
$ ls -al
总用量 64032
drwx——. 62 fomal mira月:55 .
drwxr-xr-x. 4 root root12月..
drwxr-xr-x. 2 fomal mira月.abrt
-rw. 1 oracle oinstall月:38 .bash_history
-rw-r–r–. 1 oracle oinstall月.bash_logout
……
每行最前面的那些drwx——、-rw-r–r–等等都是什么?第1个d是目录,横线是文件。后面9个符号,每3个为一组。r是读取read,w是写入write,也可以理解成保存,x是执行execute。但是这9个符念绝猜号被分成3组,每组都有可能出现r出现w出现x。那么x到底该放到哪里?那就要看这三个组的含义了。第1组,也就是第2到第4位是用户本身的权限,在这一组里面有x说明用户有执行权限,有r说明能够读取内容仔型。第2组表示用户的同伙。就是用户所属的团队中的其他人。他们(她们)的权限。最后是其他的即不是用户本人,也不和用户在通一个组里面的其他人。实际上,这种划分可以看成是2次二分法。之一次二分法是按照小组划分,分成两组:属于某个组的成员和不属于某个组的成员。第二次划分是对该组进行划分,分为该组的某个具体成员和该组中的其他人。这种分法听起来很模糊,但是却是能在现实中找到实际对应的事件的。比如说,可以把世界上的人分为两组,按照中国人的立场来分就是中国人一组、外国人一组。如果依据美国人的看法,就是美国人一组,外国人一组。中国人再分就是某个具体的中国人,比如说阁下你,和其他的中国人。学校也一样,假设某校大学一年级全体学生是整体。那么对于大一年级一班来说,分为两组,一年级一班一组,一年级其他班级一组。在一班里面又分成某个具体的同学本人和同班同学。
那么,既然说加上个x就有了执行权限,但是这个x有3个地方可以放置,分别是第4、第7 、第10位。到底放哪?那就看你的目的了,如宏明果是用户本人想要x,就是
chmod u+x 文件所属的具体目录/文件具体名称。
例如:chmod u+x /home/user1/abc.txt就是给/home/user1目录下的abc.txt添加x权限而且这个权限是属于用户本人的。u是user用户。
如果不是用户本身需要x,而是和用户属于同一个组的其他人需要。
chmod g+x 文件所属的具体目录/文件具体名称。
例如:chmod g+x /etc/bcd.txt就是给/etc目录下的bcd.txt添加x权限而且这个权限是属于和用户本人属于同一个组的其他人的。g是group组。
都不是,即不是用户本人需要,也不是同组的其他人需要,而是组外的人士需要x
chmod o+x 文件所属的具体目录/文件具体名称。
例如:chmod g+x /usr/share/cde.txt就是给/usr/share目录下的cde.txt添加x权限而且这个权限是其他人的。o是other其他这里理解成组外——小组以外。
最后再说怎么判断用户和组
$ ls -al
……
drwxr-xr-x. 2 fomal mira月.abrt
……
用这个举例
开头显示$,中括弧里面fomal说明当前登录用户是谁,这里是fomal,说明当前是以普通用户fomal身份登录系统。下面再看:drwx……那一长串和4096前面有两个单词:fomal和mira。前者fomal是.abrt这个隐藏目录所属的用户。后面的mira是.abrt这个隐藏目录所属的组。换言之,这个.abrt是属于fomal用户mira组的。那么,既然我当前是以fomal的身份登录系统,而.abrt又是属于fomal的。那么我对它有什么权利?那就是d后面3个字母所能告诉我们的了,我有r读取权利,w写入的权利,和x执行的权利。
如果是别人登录。比如说usr1,怎样?
假设这个usr1,和fomal虽然不是一个账户,但是他们同属 mira组,那么,这个usr1对于.abrt的权限就按照从之一个字母d开始向后第5到第7位的r-x来决定,它有r读取和x执行但不能写入。因为本来应该是w的位置被横线占据了,横线表示无权。
要是usr2登录系统,而且这个usr2和fomal还根本就不是一个组,咋办?那就是从之一个字母的开始往后第8到第10 位,即最末端的3位r-x来决定。同样是能读取能执行但不能写入。
最后补充一条,如果说不论是谁,只要能登录系统,就有x权限,也不管他是张三李四王五赵六,也不论他是那个组。只要能登录就给予执行权限,可以用
chmod a+x