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