文件权限
在linux中的每一个文件或者目录都包含访问权限,这些访问权限决定谁能访问以及可以进行的操作。
使用linux查看指令
ll -a # 查看当前路径下的所有文件以及目录的详细信息
[hqwsky@localhost .ssh]$ ll -a
总用量 16
drwx------ 2 hqwsky hqwsky 4096 9月 3 22:04 .
drwx------ 46 hqwsky hqwsky 4096 9月 3 21:41 ..
-rw-r--r-- 1 hqwsky hqwsky 30 9月 3 21:38 config
-rw------- 1 hqwsky hqwsky 797 9月 3 21:41 known_hosts
当执行ll -a命令后显示的结果,最前面的第2~10个字符用来表示权限,第一个字符用来区分文件和目录。
d:表示一个目录,目录是一种特殊的文件
-:表示为普通的文件
l:表示符号链接文件,实际上它指向另一个文件
b,c:分别表示区块设备和其他的外围设备,是特殊类型的文件
下面详细介绍一下权限的种类和设置权限的方法:
第2~10个字符中每3个为一组,左边的一组表示文件所有者权限,也就是文件创建者的权限,中间的一组字符表示为与所有者同组的用户的权限,右边的3个字符表示是不同组的其他用户的权限。
r(read, 读):对于文件而言,具有读取文件内容的权限;对于目录来说,具有浏览目录的权限
w(write,写):对于文件而言,具有新增、修改文件内容的权限;对目录而言,具有删除、移动目录的权限
x(execute,执行):对文件而言,具有执行文件的权限;对目录而言,用户具有进入目录的权限
-:表示不具有相应的权限
每个user都有自己的工作目录,通常放置在/home下,这些专属目录的默认权限为rwx——,表示只有所有者才有完整的权限,其他的用户没有任何权限,此外默认的权限可用umask命令修改
使用chmod改变访问权限
文件和目录的权限表示,用rwx来表示所有者、用户组和其他用户的权限。为了方便表示,可以使用数字来表示权限:
r:对应数值4
w:对应数字2
x:对应数字1
-:对应数字0
理解mode的值,其实很简单,我们可以将rwx看成二进制数,1代表有,0代表没有,那么rwxr-xr–则可以表示为111101100,转换为十进制数为754.
[hqwsky@localhost git]$ ll
总用量 4
drwx------ 3 hqwsky hqwsky 4096 9月 3 18:33 repo
[hqwsky@localhost git]$ sudo chmod 755 repo
[hwqsky@localhost git]$ ll
总用量 4
drwxr-xr-x 3 hqwsky hqwsky 4096 9月 3 18:33 repo
使用chown改变所有权
文件与目录不仅可以改变权限,其所有权以及所属用户组也可以改变。
chown option username:groupname file
[hqwsky@localhost git]$ ll
总用量 4
drwxr-xr-x 3 hqwsky hqwsky 4096 9月 3 18:33 repo
[hqwsky@localhost git]$ sudo chown huangjl repo
[hqwsky@localhost git]$ ll
总用量 4
drwxr-xr-x 3 huangjl hqwsky 4096 9月 3 18:33 repo
[hqwsky@localhost git]$ sudo chown :huangjl repo
[hqwsky@localhost git]$ ll
总用量 4
drwxr-xr-x 3 huangjl huangjl 4096 9月 3 18:33 repo
[hqwsky@localhost git]$ sudo chown hqwsky:hqwsky repo
[hqwsky@localhost git]$ ll
总用量 4
drwxr-xr-x 3 hqwsky hqwsky 4096 9月 3 18:33 repo
要修改目录的权限,使用-R参数就可以
添加用户
用户的概念:
linux是多用户操作系统,所以我们能在linux系统建若干用户(user),比如有人想用你的计算机,但是你不想让他用你的用户名登录,因为你的用户名的资料不想让别人看到,这时,可以给他建一个新的用户名,互不影响。linux的用户账号一般记录在/etc/passwd文件中
用户组的概念:
用户组(group)就是具有相同特征的用户(user)的集合体; 有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的.
用户和用户组的对应关系可以是:一对一、多对一、一对多或多对多。
1. 与用户(user)相关的配置文件
/etc/passwd 注:用户(user)的配置文件
/etc/shadow 注:用户(user)的密码文件,哈希加密的密文
2. 与用户组(group)相关的配置文件
/etc/group 注:用户组(group)配置文件
/etc/gshadow 注:用户组(group)的影子文件
3. 管理用户(user)的命令:
useradd username 注:添加用户username,默认用户组名为username,默认会在/home下创建该用户的工作目录
userdel username 注: 删除用户username
passwd username 注:为用户username设置密码,会提示用户输入新的密码,并确认
usermod username 注:修改用户username的登录名,家目录等
su username 注:切换到用户username的家目录(工作目录)
sudo 注:sudo以root权限直接执行命令,可以使用visudo来编辑/etc/sudoers使用无root密码执行
4. 管理用户(group)的命令:
groupadd groupname 注:添加用户组groupname
groupdel groupname 注:删除用户组groupname
groupmod groupname 注:修改用户组的信息
5. /etc/default/useradd文件:
通过useradd添加用户时的规则
GROUP = 100
HOME=/home 注:把用户的家目录(工作目录)建在/home中;
INACTIVE=-1 注:是否启用帐号过期停权,-1表示不启用;
EXPIRE= 注:帐号终止日期,不设置表示不启用;
SHELL=/bin/bash 注:所用SHELL的类型;
SKEL=/etc/skel 注: 默认添加用户的目录默认文件存放位置
linux常用指令
1. cat命令 cat file # 用于显示整个文件 cat file1 file2 > file # 合并文件 cat file > /dev/null # 不显示文件内容 cat file1 >> file2 # 将file1内容追加到file2 2. touch命令 一般用于修改文件的时间戳,或者新建一个不存在的文件 touch -t YYMMDDhhmm[.SS] file # 指定文件的时间戳 touch file1 file2 # 同时创建多个文件