Linux基础入门(1):用户及文件权限管理

一、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
2
3
4
5
6
7
8
9
who 命令其它常用参数

参数 说明
-a 打印能打印的全部
-d 打印死掉的进程
-m 同am i,mom likes
-q 打印当前登录用户数及用户名
-u 打印当前登录用户登录信息
-r 打印运行等级

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
2
$ sudo usermod -G sudo cody
$ groups 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
2
$ sudo chown <用户> <文件名>
$ sudo chown yyg iphones

3、修改文件权限

方式一:二进制数字表示

此处输入图片的描述
每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)就对应这一个 “rwx”,也就是一个 ‘7’ 。
往文件里加点内容:

1
$ echo "echo \"Hello World\"" > iphones

修改权限

1
$ chmod 700 iphones

想在只有拥有者有读写权利,其他用户都不可以了。

方式二:加减赋值操作

1
$ chmod go-rw iphone

‘g’’o’还有’u’,分别表示group,others,user,’+’,’-‘ 就分别表示增加和去掉相应的权限。