一、文件权限
1.文件权限修改
-rwxr-xr-x. 1 root root 24 Nov 21 20:26 1.sh
-rw-r--r-x. 1 root root 0 Nov 20 07:37 1.txt
-rw-r--r--. 1 root root 0 Nov 20 07:37 2.txt
#1.数字表示
r 4 100 读
w 2 010 写
x 1 001 执行
- 0 000 没有权限
rwx 7 可读可写可执行
rw- 6 可读可写
r-x 5 可读可执行
r-- 4 可读
rwxrw-r-- 764 文件拥有者可读可写可执行 文件所属的组可读可写 其他人可读
#2.符号表示
u 表示文件的拥有者
g 文件所属的组
o 其他人
a 所有的人 all
u+/-/= u=rwx g+x o-r
+ 表示增加权限
- 削减权限
= 赋权限
chmod o-x 32.txt #削减其他用户的可执行权限
chmod a=rwx 32.txt #给所有人赋可读可写可执行权限
chmod o+x,g+w 32.txt
chmod o=x 32.txt
-
chmod
用法:
chmod 权限 文件名/目录
chmod -R 权限 目录 递归修改目录及其子目录的所有文件的权限#数字表示 chmod 641 1.sh #符号表示 chmod a=rwx 1.sh chmod g-w 1.sh chmod g-w,o+x 1.sh chmod -R o+w tmp #递归修改tmp及其子目录中所有文件的权限
-
chown(change owner) 修改文件的所有者
要求:所有者必须在/etc/passwd文件中chown 用户名 文件名/目录名 chown 用户名:组名 文件名/目录名 chown :组名 文件名/目录名 chown -R 用户名 文件名/目录名 chown csl 1.sh chown csl:csl 1.sh #修改用户和所属组
-
修改用户组 chgrp(change group )
组必须存在,组的信息在/etc/group文件里 chgrp 组名 文件名/目录名 chgrp -R 组名 目录 chgrp -R csl tmp #递归修改tmp及其子目录下文件所属组
-
lsattr/chattr 修改和查看文件只读属性
lsattr 文件名 查看文件的只读属性,使用ls无法查看
chattr +/-i 文件名 给文件增加或去除只读属性
chattr +/-a 文件名 只能追加数据,不能修改或删除lsattr 3.py #3.py有只读属性 ----i--------e- 3.py chattr -i 3.py #去掉只读属性 chattr +i 3.py #添加只读属性
二、用户管理
-
用户和组
- 一个用户必须有一个主组
- 一个用户可以有多个组
- 一个组可以有多个用户
- 用户账户的信息存放在/etc/passwd文件中;用户的密码存放到/etc/shadow,该文件只有root可以修改;组账户信息存放到/etc/group中
-
useradd 添加一个用户
用法:
useradd [-gud] 用户名
-g 指定主组名或组id,必须已经存在的组
-u 指定用户的id
-m 自动建立用户主目录
-d 指定用户的家目录
-s 指定用户登录后使用shell,默认是/bin/bash
#创建一个用户没有指定组,则默认创建一个和用户名一样的组,作为用户的主组sudo useradd -u 1202 -g python -md /test2 -s /usr/sbin/nologin test2 所有的用户都在/etc/passwd文件中 luoming:x:501:501::/home/luoming:/bin/bash 用户名 密码 用户id 用户所属组的id 用户的家目录 shell uid gid #Ubuntu 特别提供了一个adduser 命令以交互模式创建用户, sudo adduser csl
-
删除用户 userdel
userdel -r 用户名 删除用户同时删除家目录(家目录要和用户名一致才能删除)
#如果用户登录了无法删除,应该先切换用户,然后kill -9 用户进程号,然后在删除 -
修改用户信息 usermod
usermod [option] 用户名
-u 用户id
-g 主组id
-G 附属组名称
-a 将用户添加到附属组,必须与-G配合使用
-d 用户的家目录
-l 用户登录名
sudo usermod -u 1001 -g 999 -l lkz liwenkai
sudo usermod -a -G csl python #将用户python添加到附属组csl中
sudo usermod -l newusername oldusername #修改用户名 -
修改用户密码
用法:
passwd [-lu] 用户名
-l 锁定账户密码
-u 解锁账户密码
root 可以修改其他用户的密码
普通用户只能修改自己的密码 -
su和sudo
Ubuntu默认禁止使用root账户,在系统安装的时候,创建的第一个用户作为管理员(属于sudo组),其权限要低于root,但比普通用户高,普通用户只能处理自己创建的东西,管理员可以安装软件、修改日期、删除用户等。在Ubuntu中一般看到提示符是$,当执行需要root权限操作的时候需要提升权限,我们可以使用sudo暂时提升用户权限
我们也可以使用su切换用户身份,可以切换到root或管理员,完成工作后再切换回来
用法:
sudo 命令 #需输入用户自己的密码用法:
su 账户名 #需要输入目标用户的密码
root切换到普通用户不用输入密码
普通用户切换,必须输入密码
因为Ubuntu默认不提供root密码,不能直接由su切换到root,可以先使用sudo来获取root权限
$ sudo su root #临时切换到root#启用root账户
$ sudo password root #根据提示为root输入密码#设置sudo提升权限的时候不需要输入密码,需要修改/etc/sudoers文件
sudo vi /etc/sudoers
#也可以使用工具:sudo visudo编辑Allow members of group sudo to execute any command
#将sudo组添加NOPASSWD:
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
#然后按esc
:wq!#如果新添加的用户不属于sudo组,是不能使用sudo提升权限的,需要将用户添加到sudo组
#以属于sudo组的用户登录
sudo usermod -a -G sudo 用户名
7.其他命令
- id 查看用户的id和组信息
- groups查看用户的组
- whoami 查看当前的用户是谁
三、 组管理
#添加一个组
groupadd 组名
1702:x:1001:
组名 密码 gid
groupdel 组名 #删除组
groupmod -n 新组名 旧组名
groups 显示用户的组
#所有的组信息都在/etc/group文件中记录
#用户密码在/etc/shadow