linux用户及组相关命令
基本概念
用户是Linux系统工作中重要的一环,用户管理包括用户与组管理
在Linux系统中,不论是本机还是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限
对文件/目录的权限包括:
读 read r 4
写 write w 2
执行 excute x 1
组
为了方便用户管理,提出了组的概念,在实际应用中,可以预先针对组设置好权限,
然后将不同的用户添加到对应的组中,从而不用依次为每个用户设置权限
ls -l扩展
ls -l 可以查看文件夹下文件的详细信息,从左到右依次是:
权限,第1个字符如果是d表示目录
硬链接数,通俗地讲,就是有多少种方式,可以访问当前目录/文件
拥有者,家目录下文件/目录的拥有者通常都是当前用户
组,在Linux中,很多时候,会出现组名和用户名相同的情况,后续会讲
大小
时间
名称
文件/目录权限示例
目录 拥有者权限 组权限 其他用户权限
- r w - r w - r - -
d r w x r w x r - x
chmod简单实用
chmod可以修改用户/组对文件/目录的权限
命令格式如下:
chmod -/+rwx 文件名|目录
超级用户
Linux系统中的root账号通常用于系统的维护和管理,对操作系统的所有资源拥有访问权限
在大多数版本的Linux中,都不推荐直接实用root账号登录系统
sudo
su是substitute user的缩写,表示使用另一个用户的身份
sudo命令用来以其他身份来执行命令,预设的身份为root
用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限必须重新输入密码
组管理命令
创建/删除组的命令都需要通过sudo执行
groupadd 组名 添加组
groupdel 组名 删除组
cat /etc/group 确认组信息
chgrp -R 组名 文件/目录名 递归修改文件/目录的所属组
组信息保存在 /etc/group文件中
/etc目录是专门用来保存系统配置信息的目录
用户管理命令
创建用户/设置密码/删除用户
useradd -m -g 组 新建用户名 //添加新用户 -m自动建立用户家目录 -g指定用户所在的组,否则会建立一个和用户同名的组
passwd 用户名 //设置用户密码 如果是普通用户,直接用passwd可以修改自己的账号密码
userdel -r 用户名 //删除用户 -r选项会自动删除用户家目录
cat /etc/passwd | grep 用户名 //确认用户信息
创建用户时,如果忘记添加-m选项指定新用户的家目录 --最简单的方法就是删除用户,重新创建
创建用户时,默认会创建一个和用户名同名的组名
用户信息保存在/etc/passwd文件中
查看用户信息
id [用户名] 查看用户UID和GID信息
who 查看当前所有登录的用户列表
whoami 查看当前登录用户的账号名
passwd文件
/etc/passwd文件存放的是用户信息,由6个分号组成的7个信息,分别是
1.用户名
2.密码(x,表示加密的密码)
3.UID(用户标识)
4.GID(组标识)
5.用户全名或本地账号
6.家目录
7.登录使用的Shell,就是登录之后,使用的终端
usermod:可以用来设置用户的主组/附加组合登录Shell
主组:通常在用户新建用户时指定,在etc/passwd的第四列GID对应的组
附加组:在etc/group中最后一列表示该组的用户列表,用于指定用户的附加权限
提示:设置了用户的附加组之后,需要重新登录才能生效
#修改用户的主组(passwd中的GID)
usermod -g 组 用户名
#修改用户的附加组
usermod -G 组 用户名
#修改用户登录Shell
usermod -s /bin/bash
注意:默认使用useradd添加的用户是没有权限使用sudo以root身份执行命令的,
可以使用一下命令,将用户添加到sudo附加组中
usermod a -G sudo 用户名
在 centos上可能会出现
usermod: group 'sudo' does not exist
因为centos默认没有sudo组,可以将你的用户指向wheel用户组, wheel用户组同样有sudo权限
所以在centos上可以使用如下命令添加用户组
root@centos-system$ sudo usermod -a -G wheel userName
which命令可以查看执行命令所在的位置,例如:
which ls //输出 /bin/ls
bin和sbin
在Linux中,绝大多数可执行文件都是保存在/bin、/sbin、/usr/bin
/bin(binary)是二进制执行文件目录,注意用于具体应用
/sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
/usr/bin 后期安装的一些软件
/usr/sbin 超级用户的一些管理程序
切换用户
su - 用户名 //切换用户 - 可以切换到用户家目录,否则保持位置不变
su不接用户名,可以切换到root,但是不推荐使用,因为不安全
修改文件权限
chown 修改拥有者
chgrp 修改组
chmod 修改权限
命令格式如下
chown 用户名 文件名|目录名
chgrp -R 组名 文件名|目录名
chmod -R 755 文件名|目录名 //-R选项表示递归目录下所有文件
chmod 在设置权限时,可以简单地使用三个数字分别对应拥有者/组和其他用户的权限
#直接修改文件|目录的 读|写|执行 权限,但是不能精确到 拥有者|组|其他
chmode +/-rwx 文件名|目录名 // 拥有者|组|其他 设置的权限一样 不能分别设置
拥有者 组 其他
r w x r w x r w x
4 2 1 4 2 1 4 2 1
常见数字组合有(u表示用户/g表示组/o表示其他):
777 ===》u=rwx,g=rwx,o=rwx
755 ===》u=rwx,g=rx,o=rx
644 ===》u=rw,g=r,o=r