用户管理和文件权限
添加用户
语法:
useradd 用户名
参数 | 作用 |
---|---|
-d | 指定用户账户家目录(默认是为/home/“创建用户名”) |
-M | 不创建家目录 |
-e | 指定账户过期日期 |
-g | 指定账户的主组群(必须已经存在) |
-G | 指定账户所属的附属组,各组用逗号分隔(必须已经存在) |
-n | 不创建与用户账户同名的私有用户组 |
-s | 指定用户账户登录时使用的shell解释器 |
-u | 指定用户账户的默认UID |
案例1:添加一个用户Milan,默认该用户的家目录在/home/Milan
useradd Milan
案例2:添加一个用户zs,指定该用户的家目录的/home/myZs
useradd -d /home/Zs zs
指定、修改密码
语法:
passwd 用户名
注意点:如果没有指定用户名,则是给当前用户修改密码
案例1:给ls指定密码为:123456
passwd ls
案例2:给zs指定密码为:123456
echo "123456" | passwd --stdin zs
参数 | 作用 |
---|---|
-l | 锁定用户,禁止其登录 |
-u | 解除锁定,允许用户登录 |
-S | 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 |
-d | 清空账户密码,不能登录系统,除非重新设置密码 |
--stidn | 允许通过标准输入修改用户密码,如``"echo “123456” |
删除用户
语法:
userdel 用户名
'"-r"
为可选参数,若使用该参数,则在删除该账户的同时一并删除该账户对应的主目录,"-r"
参数一般搭配"-f"
一起使用,形成"-rf"
如:userdel -rf zs
案例1:删除用户Milan,但是要保留家目录:userdel milan;
useradd milan
案例2:删除用户以及用户主目录,比如:userdel -rf zs;
useradd -d /home/myZs zs
userdel -rf zs
查询用户信息指令
语法:
id 用户名
案例1:
id root //显示出root用户的信息
当用户不存在时,返回无此用户: no such user
切换用户
语法:
su - 用户名 //注意加入"-"是代切换用户时进入该用户的家进行工作
在操作Linux中,如果当前用户的权限不够,可以通过 su -指令,高权限用户,切换到底权限用户,不需要输入密码
查看当前用户、登录用户
语法:
whoami/who am i
注意是:显示第一次登录系统用户的信息,如用haikang登录进入系统,显示是haikang信息,当从haikang用户切换到root用户时,显示还haikang的信息
注意who与whoami(who am i)的区别:
whoami(或who am i)是显示当前使用系统的用户
who 是显示最初登录的用户
新增组
语法:
groupadd 组名
删除组
语法:
groupdel 组名
案例演示
1.增加用户时直接加上组
指定: useradd -g 用户组 用户名
3.增加一个用户haikang,直接将放到wudang组中
groupadd wudang
useradd -g wudang haikang
修改用户组
语法:
usermod -g 用户组 用户名
案例:
创建一个组mojiao
把haikang放入到mojiao组中
指令:groupadd mojiao
usermod -g mojiao haikang
用户和组相关文件
/etc/passwd
/etc/shadow
/etc/group
Linux组基本介绍
在Linux中的每个用户必须属性一个组,不能独立于组外。在Linux中每个文件有所有者,所有组,其它组的概念。
意思就是:一个用户必须有一个所属组,一个文件必须有所有者(一般就是谁创建此文件),所有组(创建者所在组),其它组(创建者所在组除外的组)
- 所有者
- 所有组
- 其它组
- 改变用户所在的组
文件、目录所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
查看文件的所有者
语法:
ls -lahl
ls -l
ll
出现两个连接数的因为是文件夹中默认有两个连接点分别为:. ..
如果是普通的文件连接是1,默认只有:.
;其实都是节点。
修改文件所有者:修改所有者是:chown
指令:
chown 用户名 文件名
案例:
要求:使用root创建一个文件为apple.txt,然后将其所有者修改成haikang
touch apple.txt
chown haikang apple.txt
文件,目录所在组:修改组是 chgrp
当某个用户创建一个文件后,这个文件的所在组就是该用户所在的组
查看文件,目录所在组
指令:
ls -ahl ls -l ll
应用实例,使用haikang用户创建一个文件ok.txt,看看该文件属性哪个组?
haikang ok.txt
修改文件所在的组
指令:
chgrp 组名 文件名
应用实例:
使用root用户创建文件root.txt,看看当前这个文件属性哪个组,然后将这个文件的所在组,修改到fruit组
指令:
1.groupadd fruit
2.touch root.txt
3.ll (或ls -l 或 ls -ahl)
4.chgrp fruit root.txt
其它组
除了文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root管理权限可以改变某个用户所在组。
改变用户所在组(前提该组必须存在)
1.usermod -g 新组名 用户名
2.usermod -d 目录名 用户名 改变该用户登陆的初始目录。特别说明是:用户需要有进入到新目录的权限,否则修改也登录不入
应用实例:
将haikang这个用户从原来所在组,修改到myHaiKang组
usermod -g myHaiKang haikang
权限的基本介绍
ls -l 中显示的内容如下:
drwxr-xr-x. 3 root fruit 16 Nov 24 06:10 AA
0-9位说明(总共10位)
1.第0位确定文件类型(d - l c b)
l是链接,相当于Windows的快捷方式(就是硬链接和软链接)
-是普通文件
d是目录,相当Windows中文件夹
c是字符设备文件,鼠标,键盘
b是块设备,比如硬盘
2.第1-3位确定所有者(该文件的所有者)拥有该文件的权限。---User
3.第4-6位确定所属组(同用户组的)拥有该文件的权限。---Group
4.第7-9位确定其他用户拥有该文件的权限。Other
rwx
权限详解(重点)
rwx作用到文件
1.[r]代表可读(read):可以读取,查看
2.[w]代表可写(write):可能修改,但是不代表可以删除该文件,删除该文件必须是执有者
3.[x]代表可以执行(execute):可以被执行
rwx作用文件夹
1.[r]:代表可读(read):可以读取,ls查看目录内容
2.[w]:代表可写(write):可以修改,对目录内的文件(创建+删除+重命名)目录
3.[x]:代表可执行(execute):可以进入该目录
drwxr-xr-x. 3 root fruit 16 Nov 24 06:10 AA
可用数字表示为:r=4,w=2,x=1 因为rwx=4+3+1=7
其它说明:
l 文件:硬连接数或目录:子目录数
root 用户
fruit 组
16 文件大小(字节)
Nov 24 03:10 AA 文件名
修改权限
通过chmod
指令,可以修改文件或者目录的权限
chmod [-R] ijk 文件名 (这里的ijk表示数字)
如果对文件夹进行操作需要加入"-R"
参数进行递归更改
第一种方式:+ - =
变更权限
u:所有者 g:所有者 o:其他人 a:所有人(u,g,o的总和)
案例:
1: chmod u=rwx,g=rx,o=x 文件,目录名
2: chmod o+w 文件,目录名
3. chmod a-x 文件、目录名
案例演示:
1:给ZS文件的所有者读写执行的权限,给所在组读执行权限,给其它读执行权限
chmod u=rwx,g=rx,o=x zs
chmod 751 zs
2.给ZS文件的所有者除去执行的权限,增加组写的权限
chmod u-x,o+w zs
3.给ZS文件的所有用户添加读的权限
chmod a+r zs
第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=7
chmod u=rwx g=rx o=x 文件目录名
相当于 chmod 751
案例演示:
要求:将/home/abc.txt文件的权限修改rwxr-xr-x,使用给数字的方式实现:
chmod 755 /home/abc.txt
修改文件(文件夹或目录)所有者
chown
命令用来更改文件的所属主和所属组,该命令操作的语法的格式为:
语法:
chown [-R] 账户名[:组名] 文件名
如果文件名是目录,并要求同时更改目录下的所有文件,则需要加入"-R"
参数进行递归更改,而chgrp
方式修改则不需要加入参数
案例演示:
1.请将/home/abc.txt文件的所有者修改成haikang用户
chown haikang /home/abc.txt
2.请将/home/test目录下所有文件和目录的所有者都haikang用户
chown -R haikang /home/test
修改文件,目录所在组
语法:
chgrp [-R] 组名 文件名
请将/home/abc.txt文件的所在组修改成shaolin(少林)
groupadd shaolin
chgrp shaolin abc.txt
请将/home/test目录下所有的文件和目录的所有组都修改成shaolin
chgrp -R shaolin /home/test
指令总结
添加用户:useradd 用户名
修改密码:passwd 用户名
删除用户:userdel [-rf] 用户名
查询用户信息:id 用户名
切换用户:su - 用户名
查询当前用户登录信息:who am i / whoami
新增组:groupadd [-g(修改用户组的GID)/-n(修改用户组的组名)]
删除组:groupdel 组名
修改用户组:groupmod -g 用户组(组名) 用户名
查看文件的所有者:ls -lahl ls -l ll
修改文件所有者,修改文件所在组:chown [-R] 账户名[:组名] 文件名
chown
可以用来修改所属主和所属组
修改文件所属组:chgrp [-R] 组名 文件名
修改文件权限(重点):chmod [-R] ijk 文件名 (这是ijk是数字)