Linux学习笔记(一) 文件权限与inode

原文来自我的个人博客 twodam.net

文件权限

文件权限描述符

drwxrwxr-x 2 lucky lucky 4096 Apr 15 15:48 ./
drwxr-xr-x 5 lucky lucky 4096 Apr 14 13:24 ../
-rw-rw-r-- 1 lucky lucky  161 Apr 13 20:21 news
-rw-rw-r-- 1 lucky lucky  309 Apr 13 19:34 passwd.cut
-rw-rw-r-- 1 lucky lucky  309 Apr 13 19:34 passwd.sort

1 位是文件类型 2-4位是owner的权限 5-7位是group的权限 8-10位是other的权限 d代表directory(目录) rwx分别是read(读),write(写),execute(执行) - 在第一位指的是文件类型为文件,在后面的位上指的是不具有对应权限

文件夹权限描述符

文件夹权限描述符中的rwx含义是不同与file的。

可查阅:

1.Execute vs Read bit. How do directory permissions in Linux work?

2.在linux系统中输入man chmod,info '(coreutils) chmod invocation'(或是加上--vi-keys选项就可以使用vi的键位来控制翻页等操作了,即info --vi-keys '(coreutils) chmod invocation',具体按h查看帮助).

使用符号表示法设定文件或目录上的权限

chmod [-R] mode 文件名或是目录名,R决定是否递归设置该目录子目录及文件的对应权限。

--------------mode--------------
who       operator    permission
u/g/o/a    +/-/=      r/w/x/X/s/t

Each MODE is of the form '[ugoa]*(-+=)+|[-+=][0-7]+'. 这里a是all也就是所有用户的意思。 +表示加入权限,-表示去掉权限,=表示设定权限 用法示例:

chmod ug+x testfile #给所有者,同组用户加上对testfile的执行权限
chmod -R ugo-r /home/koala/test.d #移除所有者,同组用户以及其他用户对/home/koala/test.d目录中所有文件的读权限

特殊权限

用户、群组与权限

用户密码状态

passwd -S 用户名 查看用户密码状态

S选项的含义可以通过man passwd查看。

状态信息由七个属性组成。第一个属性是用户的登录名,第二个属性为L,NP,P时分别表示用户账户密码被锁定,没有密码和密码可用,第三个属性为密码最后更改的日期,接下来四个属性分别是密码的最小天数(密码更改最短间隔时间),最大天数(多少天后用户需要更改密码),警告天数(在密码过期前多久开始提示)以及不可用天数段(多久后密码不可用)。详见下面测试:

root@ubuntu:~# passwd -n 1 koala && passwd -S koala #修改密码更改最短间隔时间
passwd: password expiry information changed.
koala P 04/13/2017 1 99999 7 -1
root@ubuntu:~# passwd -x 1 koala && passwd -S koala #修改密码更改最大天数
passwd: password expiry information changed.
koala P 04/13/2017 1 1 7 -1
root@ubuntu:~# passwd -w 1 koala && passwd -S koala #修改警告天数
passwd: password expiry information changed.
koala P 04/13/2017 1 1 1 -1
root@ubuntu:~# passwd -i 1 koala && passwd -S koala #修改不可用天数
passwd: password expiry information changed.
koala P 04/13/2017 1 1 1 1
root@ubuntu:~# passwd -n 0 -x 99999 -w 7 -i -1 koala && passwd -S koala #恢复初始的参数
passwd: password expiry information changed.
koala P 04/13/2017 0 99999 7 -1

su中-选项的作用

su -usersu user 的区别是?

以下是Manual page中对-的描述:

-, -l, --login Provide an environment similar to what the user would expect had the user logged in directly. When - is used, it must be specified before any username. For portability it is recommended to use it as last option, before any username. The other forms (-l and --login) do not have this restriction.

实际效果是加上了-(或是-l,--login)选项后,相应的环境也会作调整,如$PATH的值,以及切换用户后当前目录的地址也会对应切换。

查看与当前用户有关消息的命令

whoami #确定当前用户
id #获取当前用户的uid,gid,groups信息
groups #显示当前用户所属的群组

inode

一个i节点就是一个与某个特定对象(如文件或目录)相关的信息列表。i节点实际上是一个数据结构,它存放了有关一个普通文件、目录或其他文件系统对象的基本信息。 通常每个i节点由两部分组成,第一部分是有关文件的基本信息,第二部分是指向存储文件信息的数据块的指针。

-- 《名师讲坛:Linux入门和实战经典》

基本信息有: 1.inode-no,文件系统中唯一的编号。 2.File type,如-为普通文件,d表示目录。 3.permission,在i节点中是使用数学表示法来表示存储每一个文件或目录的权限。 3.Link count,硬连接数。 4.UID,文件所有者的UID。 5.GID,文件所有者所属群组的GID。 6.size,文件的大小。 7.Time stamp,时间戳,包括 (1)Acess time,最后一次存取这个文件的时间。 (2)Modify time,最后一次编辑这个文件的时间。 (3)Change time,指的是i节点中相对于这个文件的任何一列的元数据发生变化的时间。

cp、mv及rm命令如何操作inodes

cp

1.找到一个空闲的i节点记录,把新增加文件的元数据写入到这个空闲的i节点中并将新纪录放入inode表中。 2.同时还要产生一条目录记录,把新增文件名对应到这个空的inode号码。 3.当做完以上操作以后,系统才会将文件的内容复制到新增的文件中去。

mv

1.系统会首先产生一个新的目录记录,把新的文件名对应到原有的i节点。 2.删除带有旧文件名的原有的目录记录。 3.系统除了会更新时间戳之外,移动文件行为对原本在inode表中的数据不会有任何影响,也不会将数据移动到其他的文件中去,也就是没有发生真正的数据移动。 4.如果要移动的文件的源位置与目的位置是在不同的文件系统上时,mv的行为是复制和删除两个动作。

rm

1.系统首先将这个文件的连接数减1,之后这个文件的link count如果小于1,系统就会释放这个i节点以便重用。 2.释放存储这个文件内容的数据块,即将这些数据块标记为可以使用。 3.删除记录这个文件名和i节点号的目录记录。 4.系统并未真正删除这一文件的数据,只有当其他文件要使用这些已经释放的数据块时,这些数据块中原有的数据才会被覆盖掉。

转载于:https://my.oschina.net/u/4037517/blog/2966254

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值