用户管理
Linux是一个多用户可以同时登陆的操作系统,多用户共享主机资源,但也拥有自己的空间,存放各自的文件。他们的文件都是放在同一个磁盘上的逻辑分区或者目录里的,但由于用户管理和权限机制,不同用户无法轻易的查看、修改彼此的文件。
1.查看用户
wang:~/ $ who am i
wang ttys000 Aug 30 16:10
输出第一列是打开当前终端的登录用户的用户名,第二列是当前终端
who -a 打印能打印的全部
who -d 打印死掉的进程
who -m 同am i、mom likes
who -q 打印当前登录用户数及用户名
who -u 打印当前登录用户登录信息
who -r 打印运行等级
2.创建用户
Linux中,root拥有最高权限,一般登录都是普通账户身份,要创建账户需要root权限,这要用到sudo命令,这个命令的使用有两大前提:1.知道当前登录用户的密码;2.当前用户必须在sudo用户组。
su、su- 与 sudo:su Jone 可切换到用户 jone,执行时需要输入jone的密码,sudo cmd 可以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码。su - jone 命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。
创建一个用户:
$ sudo adduser max
设置出现的提示选项
这个命令不但添加用户到系统,同时也会默认为用户添加home目录
$ ls /home
现在已创建好一个用户,可以切换到此用户登录了
$ su -l max
退出当前终端用 exit 或 Ctrl + d
3.用户组
Linux中,每个用户都属于一个用户组,也可以属于多个用户组,用户组是多个用户的集合,组中用户共享一些资源和权限,同时每个用户又拥有私有资源和权限。如何知道用户属于哪个用户组呢?
一:使用group命令
$ groups max
max : max
冒号之前表示用户,冒号之后表示该用户所属的用户组。每次新建的用户不指定用户组的话,会自动创建一个与用户名相同的用户组。
默认情况下,sudo用户组里的可以用sudo命令来获取root权限。
二:查看/etc/group文件,cat命令用于读取指定文件的内容并打印到终端输入,| sort表示将内容做字典排序在输出。
$ cat /etc/group | sort
过滤掉一些不想看到的结果:
$ cat /etc/group | grep - E "max"
max:x:5000:
格式说明:包括用户组、用户组口令、GID及改组包括的用户,密码为x表示不可见
######将其他用户加入sudo用户组:新创建的用户是不具备root权限的,也不在sudo用户组,可将其加入sudo用户组获取root权限。
$ sudo -l max
$ sudo ls
######使用usermod为用户添加用户组,使用该命令需要root权限,可以直接使用root用户为用户添加用户组,也可以用其他已经在sudo用户组的用户使用sudo命令来获取权限来执行此命令。这里用后者:
$ su jone
$ groups max
$ sudo usermod -G sudo max
$ groups max
现在可以使用root权限了
#####删除用户
$ sudo deluser max --remove-home
####文件权限
#####查看文件权限,使用较长格式列出文件
$ls -l
drwxr-xr-x 4 jone staff 136 6 19 2016 AndroidStudioProjects
文件类型和权限 链接数 所有者 所属用户组 文件大小 最后修改时间 文件名
第一个字母表示文件类型:
d:目录, l:软链接, b:块设备, c:字符设备, s:socket, p:管道,, -:普通文件
中间三个字母:
r:表示允许读权限,w:表示允许写权限,x:表示允许执行权限
r-x:表示所属用户组权限,r-x(末尾):表示其他用户权限
$ls -lh 直观显示文件大小
$ls -A 显示除了.(当前目录)和..(上一级目录)之外的所有文件,包括隐藏文件(以.开头的),也可以用 $ls -Al
$ls -dl 目录名 查看某个目录的完整属性,而不是目录里的文件的属性
$ls -AsSh 显示所有文件大小,并以普通人能看懂方式显示
s为显示文件大小,S为按文件大小排序
#####变更文件所有者
网友评论