一、Linux 用户管理
1、查看用户
1 | $ who am i |
或者
1 | $ who mom likes |
输出内容如下
1 | yyg pts/0 2016-04-21 08:28 (:0) |
- 其中第一列表示打开当前伪终端的用户的用户名(可直接使用whoami)
- 第二列的 pts/0 中 pts 表示伪终端,所谓伪是相对于 /dev/tty 设备而言,即使用 [Ctrl]+[Alt]+[F1]~[F7] 进行切换的 /dev/tty 设备(“真终端”)
- pts/0后面的0表示伪终端序号,再开一个终端即为1
1 | who 命令其它常用参数 |
2、创建用户
root是 Linux 和 UNIX 系统中的超级管理员用户帐户,拥有至高无上的权利,比如新建/添加用户
su,su-与sudo
- su
可以切换到用户user,密码
1 | $ su yyg |
- su - <user>命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。
1 | $ su - cody |
- sudo <cmd>可以以特权级别运行cmd命令,需要当前用户属于sudo组,且需要密码。(此处cmd不是win下的cmd,指的是命令)
1 | $ sudo install |
登陆时是以普通账户登陆,如果要创建用户需要root权限,需要用到sudo命令,使用有以下两个前提
- 知道当前登陆用户的密码
- 当前用户必须在sudo用户组里
新建用户
这个命令不但可以添加用户到系统,同时也会默认为新用户创建 home 目录
1 | $ sudo adduser cody |
切换登陆用户,可以发现从yyg@ubuntu变成了cody@ubuntu
1 | $ su - cody |
3、用户组
使用groups命令
1 | $ groups - cody |
输出的冒号之前表示用户,后面表示该用户所属的用户组。默认会创建一个和用户名相同的用户组。
查看/etc/group文件
1 | $ cat /etc/group | sort |
可以使用过滤,grep -E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
1 | $ cat /etc/group | grep -E "yyg" |
/etc/group 的内容包括用户组(Group)、用户组口令、GID 及该用户组所包含的用户(User),每个用户组一条记录。格式如下:
1 | group_name:password:GID:user_list |
其中password字段’x’表示密码不可见
将其它用户加入 sudo 用户组
默认添加的用户是不在sudo用户组的,使用usermod添加用户组
- 必须有root权限,可以直接使用 root 用户为其它用户添加用户组
- 或者是已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令
1 | $ sudo usermod -G sudo cody |
usermod -G<群组>;修改用户所属的附加群组
4、删除用户
1 | $ sudo deluser cody --remove-home |
–remove-home,移除home目录
二、Linux文件权限
1、查看文件权限
文件类型
Linux 里面一切皆文件,其中软链接等同于 Windows 上的快捷方式
文件权限
一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息,不过 Linux 上不是通过文件后缀名来区分文件的类型。
链接数
链接到该文件所在的 inode 结点的文件名数目
文件大小
以 inode 结点大小为单位来表示的文件大小,你可以给 ls 加上 -lh 参数来更直观的查看文件的大小(h以k作为单位显示大小)。
显示除了 ‘.’(当前目录),’..’ 上一级目录之外的所有包含隐藏文件(Linux 下以 ‘.’ 开头的文件为隐藏文件)
1 | $ ls -A |
显示所有文件(包含‘.’和‘..’)
1 | $ ls -a |
查看某一个目录的完整属性,而不是显示目录里面的文件属性:
1 | $ ls -dl <目录名> |
按时间排序
1 | $ ls -t |
显示所有文件大小,并以普通人类能看懂的方式呈现:
1 | $ ls -AsSh |
其中A显示除’.’’..’的所有文件,小 s 为显示文件大小,大 S 为按文件大小排序,h以k作为单位显示大小。
2、变更文件所有着
1 | $ sudo chown <用户> <文件名> |
3、修改文件权限
方式一:二进制数字表示
每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)就对应这一个 “rwx”,也就是一个 ‘7’ 。
往文件里加点内容:
1 | $ echo "echo \"Hello World\"" > iphones |
修改权限
1 | $ chmod 700 iphones |
想在只有拥有者有读写权利,其他用户都不可以了。
方式二:加减赋值操作
1 | $ chmod go-rw iphone |
‘g’’o’还有’u’,分别表示group,others,user,’+’,’-‘ 就分别表示增加和去掉相应的权限。