Linux文件权限
“文件权限就是文件的访问权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Linux系统除了对用户权限做出严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。Linux中的每一个文件或者目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。”
查看文件权限:
ls命令:可以用来列出并显示当前目录下的文件
使用较长格式列出文件:
$ ls -l
文件类型和权限、链接数详解:
·文件类型:
Linux里面一切皆文件,这样才有设备文件这一说。(/dev目录下有各种设备文件,大多跟具体的硬件设备有关)。socket:网络套接字。pipe管道。软连接文件:链接文件一般分为两种,另一种当然是“硬链接”(硬链接不常用,软链接等同于Windows上的快捷方式)
·文件权限:
读权限,表示可以使用 cat 《file name》之类的命令来读取某个文件的内容;
写权限,表示可以编辑和修改某个文件;
执行权限,通常指可以运行的二进制程序文件或者脚本文件,类似windows上的.exe.后缀的文件,不过Linux上不是通过文件后缀名来区分文件的类型。
**一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其他文件。**因为目录文件实际保存着该目录里面的文件的列表等信息。
所有者权限,是指所在的用户组中的所有其他用户对于该文件的权限。
·链接数:
链接到该文件所在的inode结点的文件名数目。
·文件大小:
以inode结点大小为单位来表示的文件大小,可以给ls加上-h参数来更直观的查看文件的大小。
变更文件所有者:
假设目前是pure用户登录,新建一个文件,命名为bbb
$ su pure
$ cd /home/pure
touch bbb
此时文件的所有者为pure。
现在换回aaa用户身份,使用以下命令变更文件所有者为aaa:
#需要切换到shiyanlou用户执行者
$ cd /home/pure
$ ls bbb
$ sudo chown aaa bbb
现在查看,可以发现文件所有者成功修改为aaa:
$ ll bbb
修改文件权限:
如果有一个自己的文件不想被其他用户读、写、执行,那么就需要对文件的权限做修改,这里有两种方式:
·方式一:二进制数字表示
每个文件的三组权限(拥有者,所属用户组,其他用户)对应于一个“rwx”,也就是一个“7”,所以如果如果我要将文件“bbb”的权限改成只有我自己可以用那么就这样:
$ echo "echo \"hello world\"" >bbb
然后修改权限:
$ chmod 600 bbb
600可以表示。6=4+2+0,0=0+0+0,0=0+0+0
验证:
当用户为aaa时:
$ su aaa
$ cat /home/pure/bbb
输出是:
echo “hello world”
而当用户为pure时:
$ su pure
$ cat /home/pure/bbb
输出是:权限不够
·方式二:加减赋值操作
完成相同效果,可以:
$ chmod go-rw bbb
g、o还有u分别表示group、others和user,+和-分别表示增加和去掉相应权限。
拓展:adduser和useradd的区别
useradd只创建用户,创建完了用passwd pure去设置新用户的密码。
adduser会创建用户,创建目录,创建密码(提示你去设置),做这一系列的操作。
其实useradd、userdel这类的操作更像是一种命令,执行完了就返回。而adduser更像是一种程序,需要你输入、确定等一系列操作。