1,创建文件的用户和他所属的组拥有该文件,文件的属主可以设定谁具有读、写、执行该文件的权限,根用户可以改变任何普通用户的设置。
2,一个文件一经创建,就具有三种访问权限:读(可以显示该文件的内容)、写(可以编辑或删除它),执行(如果该文件是一个shell脚本或程序)
3,按照针对的用户,文件的权限分为三类:文件属主(创建该文件的用户)、同组用户(拥有该文件的用户组中的任何用户)、其他用户(不属于拥有该文件的用户组的某一用户)
4,解析文件描述
total 4232:该目录中所有文件所占空间
-rwxr-xr-x:说明文件权限。除去前面横杠,一共9个字符,对应9个权限,分为3组
rwx:文件属主权限(前三位)
r-x:同组其他用户权限(中间三位)
r-x:其他用户权限(后三位)
出现在rwx位置上的横杠表示相应的访问权限被禁止
1:该文件硬链接的数目
root:文件的属主
root:文件的属主所在的缺省组
3578:用字节来表示文件的长度
Oct 14 04:44 文件的更新时间
demsg:文件名
5,-rwxrwxrwx 前面的横杠表示的是文件的类型。
d(目录)、l(符号链接)、s(套接字文件)、b(块设备文件)、c(字符设备文件)、p(命令管道文件)-(普通文件,确切的说是不属于以上几种类型的文件)
6,系统在创建文件的时候,出于加强系统安全的考虑,系统不会自动设置执行权限位,必须手动修改。chmod命令可以改变文件权限位的设置。
chmod [who] operator [permission] filename
who:u(文件属主权限)、g(同组用户权限)、o(其他用户权限)、a(所有用户:文件属主、同组用户、其他用户)
operator:+(增加权限)、-(取消权限)、=(设定权限)
permission:r(读权限)、w(写权限)、x(执行权限)、s(文件属主和组set-ID)、t(粘性位*)、l(给文件加锁、使其他用户无法访问)、u,g,o(针对文件属主、同组用户以及其他用户的操作)
*:在列文件或目录时,有时会遇到‘t’位。‘t’位代表了粘性位。如果一个目录上出现了t位,表示该目录中的文件只有属主才能删除,即使某个同组用户具有和属主同等权限。
如果在文件列表时,看到t,表示该脚本或程序被执行时,会被放在交换区(虚存)。
chmod a-x filename 收回所有用户的执行权限
chmod og+w filename 赋予同组用户和其他用户写权限
chmod u+x o-w filename 赋予属主执行权限,取消其他用户写权限
7,chmod命令绝对模式
chmod [mode] file mode是一个八进制数,每一个权限位用一个八进制数来表示
0400(属主可读)、0200(属主可写)、0100(属主可执行)
0040(同组可读)、0020(同组可写)、0010(同组可执行)
0004(其他可读)、0002(其他可写)、0001(其他可执行)
在设定权限时,只需要找到相应数字,相加即可。最大权限位7
例如:-rw-r--r--表示的权限为644,即0400+0200属主可读写,0040同组可读,0004其他可读
r+w+x = 4+2+1
chmod 444 file 赋予所有用户读权限
chmod 644 * 一次设置目录下所有文件的权限,文件属主具有读写权限,同组用户和其他用户只要读权限
chmod -R 664 /usr/local/home/dave/* 一次性将dave目录下的所有文件连同各个子目录下的文件的权限,全部设置为文件属主和同组用户可读可写,其他用户只读(只有在改变目录树下全部文件权限时,才可以使用-R)
8,读指列出文件目录的权限,写指在该目录中创建或删除文件的权限,执行指搜索或进入该目录的权限
9,目录的权限级别大于目录中文件的权限级别
10,suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其他用户在执行这一脚本时,也会具有其属主的相应权限。于是,如果根用户的某一脚本设置了这样的权限,那么其普通用户在执行它的期间,也同样有根用户的权限。同样的原则也适用于guid,执行相应脚本的用户将具有该文件所属用户组中用户的权限。
想找出设置了suid和guid的命令,可以进入/bin或/sbin目录执行下面的命令
如果希望设置suid,那么就将相应权限位之前的那一位设置为4,如果希望设置guid,那么就将相应权限位之前的那一位设置为2,如果希望同时设置,那么相应权限位之前的那一位设置为4+2。
一旦设置了这一位,一个s将出现在x的位置上。在设置suid或guid的同时,相应的执行权限位必须要被设置。
rwS rw-rw-表示该文件没有设置执行位,这是一种没有任何用处的suid设置
chmod不进行必要的完整性检查
11,只有文件的属主和系统管理员可以改变文件的所有权,一旦将文件的所有权交给另外一个用户,将无法再重新收回它的所有权,如果真的要收回,就只能求助于系统管理员。
chown命令的一般形式:chown -R -h owner file
-R表示对所有子目录下的文件也进行同样的操作。-h表示在改变符合链接文件的属主时,不影响该链接所指向的目标文件。
12,
13,找出自己所属的用户组
14,找出其他用户的组
15,当我们登录系统后创建文件时,总有一个默认权限,这就是umask干的事情,umask设置了用户创建文件的默认权限。与chmod相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般来说umask是在/etc/profile文件中设置的,每个用户登录时都会引用这个文件。如果希望永久性的设置自己的umask,就将它放在自己$HOME目录下的.profile或.bash_frofile文件中。
对于文本文件来说,umask的最大值是6,对于目录来说,umask最大是7。因为系统不允许在创建一个文本文件时就赋予它执行权限,必须在创建后使用chmod增加,目录则允许设置执行权限。
umask命令形式:umask nnn nnn范围是000-777
umask的计算是从权限中拿走相应的位即可。例如umask是002,则对于文件的缺省权限是664,针对目录的权限是775
如果想知道umask的值,可以使用umask命令
16,符号链接:存在两种不同类型的链接,软链接和硬链接。
软链接实际就是一个指向文件的指针。比如,有很多子目录,进入很浪费时间,那就可以在方便的位置针对这个很深的子目录创建一个链接。链接的名字可以和源文件不同。
命令模式:ln [-s] source_path target_path 其中的路径可以是目录页可以是文件,若target不存在,系统会自动创建
链接一旦创建,链接目录将具有权限777(对原有文件的权限不会产生改变),所以不要忘记在原有目录设置执行权限