最近遇到一同事问我怎么快速的给文件夹加密,我寻思着这货又收集什么见不得人的机密了,给文件夹或者文件加密的方式有很多,要钱的不要钱的就说你想要什么样的吧。得,整了半天给我来句只要别人没权限打开就成,那这不好办么,直接设个权限不就完事了么,暂时糊弄糊弄一些生瓜蛋子做到打不开就死心还是可以的。最近正好遇到一些涉及到权限问题的事,就在这捋一捋,认识认识新词。
linux有个命令叫chmod,就是更改权限的作用。

1
chmod [-cfvR] [--help] [--version]  mode  file...

说明 :
Linux/Unix 的档案存取权限用户群体分为三级 : 拥有者群组其他。利用 chmod 可以控制档案如何被他人所存取。
mode : 权限设定字串,让你看写啊删啊执行啊都在这设置

1
[ugoa...][[+-=][rwxX]...][,...]

细细表来上面都是些什么东东:

u:表示该档案的拥有者
g: 表示与该档案的拥有者属于同一个群体(group)者
o :表示其他以外的人
a: 表示这三者皆是
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本

范例 :
将老同事的 xx.avi 设为所有人皆可读取(不厚道的笑了)

1
chmod ugo+r xx.avi

另一种写法

1
chmod a+r xx.avi

现在将老同事的 xx.avi 与 some.jpg 权限设为他与其所属同一个群体者可写入,比如做一些文本编辑图片处理啊什么的,但其他以外的人则不可写入,但是他们可以读取的到。

1
chmod ug+w,o-w file1.txt file2.txt

将 ex1.py 设定为只有该档案拥有者可以执行

1
chmod u+x ex1.py

将目前目录下的所有档案与子目录皆设为任何人可读取

1
chmod -R a+r *

此外chmod也可以用数字来表示权限如 chmod 777 file ,这是更简便更有逼格的写法了,懂得人自然会心一笑,不懂得人一脸懵X。
语法为:chmod ugo xx.file
其中u,g,o各为一个数字,分别表示User、Group、及Other的权限。

1
2
  u  -   g  -   o
r4w2x1-r4w2x1-r4w2x1

心法都在这了,领走闭关练练

1
2
3
4
r=4 (二进制 100 ),w=2 (二进制 010 ),x=1 (二进制 001 )
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5

给个栗子:

1
2
3
chmod a=rwx file
等同于
chmod 777 file
1
2
3
chmod ug=rwx,o=x file
等同于
chmod 771 file

若用chown 4755 filename可使此程式具有root的权限
指令名称 : chown
使用权限 : root

使用方式

1
chown [-cfhvR] [--help] [--version] user[:group] file...

说明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。

user : 新的档案拥有者的使用者 IDgroup :
新的档案拥有者的使用者群体(group)-c :
若该档案拥有者确实已经更改,才显示其更改动作-f :
若该档案拥有者无法被更改也不要显示错误讯息-h :
只对于连结(link)进行变更,而非该 link 真正指向的档案-v :
显示拥有者变更的详细资料-R :
对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本

举个栗子 :
将档案 file1.txt 的拥有者设为 users 群体的使用者 tommy :

1
chown tommy:users file1.txt

将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 dannie(ahaahaha) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
chmod -R dannie:users *
-rw------- (600) -- 只有属主有读写权限。

-rw -r- -r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。

-rwx--- --- (700) -- 只有属主有读、写、执行权限。

-rwx r-x r-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。

-rwx --x --x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。

-rw- rw- rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。

-rwx rwx rwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法

以下是对目录的两个普通设定:

1
2
3
4
5
d rwx --- --- (700)   只有属主可在目录中读、写。
d rwx r-x r-x (755) 所有用户可读该目录,但只有属主才能改变目录中的内容
suid的代表数字是4,比如4755的结果是-rws r-x r-x
sgid的代表数字是2,比如6755的结果是-rws r-s r-x
sticky位代表数字是1,比如7755的结果是-rws r-s r-t

欢迎交流转载请注明出处