Linux用户及文件权限管理

一、Linux用户管理

1)查看用户

$ who am i

 或者

$ who mom likes

 输出内容如下

geek pts/1 2016-08-06 10:00 ( :0 )

 其中第一行表示打开当前伪终端的用户名(可直接使用who am i)

第二列的 pts/1中pts表示伪终端,所谓伪是相对于/dev/tty设备而言,即使用[Ctrl]+[Alt]+[F1]~[F7]进行切换的/dev/tty设备(“真终端”)pts/1后面的1表示伪终端序号,再开一次终端即为1

who 命令其它常用参数

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

 2)创建用户

root是Linux和UNIX系统中的超级管理员用户账户,拥有至高无上的权利,比如新建/添加用户

su, su-与sudo

su可以切换到用户user, 密码

$ su geek

 su - <user>命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。

$ su - cody

 sudo <cmd>可以以特权级别运行cmd命令,需要当前用户属于sudo组,且需要密码。(此处cmd不是win下的cmd,指的是命令)

$ sudo install

登陆时是以普通账户登陆,如果要创建用户需要root权限,需要用到sudo命令, 使用有以下两个前提

-知道当前登陆用户的密码

-当前用户必须在sudo用户组里

新建用户

这个命令不但可以添加用户到系统,同时也会默认为新用户创建home目录

$ sudo adduser cody

切换登陆用户,可以发现从geek@ubuntu变成了cody@ubuntu

$ sudo - cody

 3)用户组

使用groups命令

$ groups - cody

 输出的冒号之前表示用户,后面表示该用户所属的用户组。默认会创建一个和用户名相同的用户组。

查看/etc/group文件

$ cat /etc/group |sort

 可以使用过滤,grep -E将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。

 $ cat /etc/group | grep -E "geek"

 /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下以‘.’开头的文件为隐藏文件)

 $ ls -A

 显示所有文件(包含'.'和'..')

 $ ls -a

查看某一个文件完整属性,而不是显示目录里面的文件属性:

 $ ls -dl <目录名>

  按时间排序

 $ ls -t

 2)修改文件权限

方式一:二进制数字表示

 
Linux用户及文件权限管理
每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序诗一定的)就对应一个“rwx”,也就是一个“7”.

往文件里加点内容 :

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

修改权限

$ chmod 700 iphones

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

方式二:加减赋值操作

$ chmod go-rw iphone

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

相关推荐