Linux Shell学习笔记(3):关于用户身份和能力

Linux是一个多用户、多任务的操作系统,具有很好的稳定性与安全性。文件的所有者、所属组以及其他人可对文件进行的读写执行等操作,以及如何在Linux系统中添加、删除、修改用户账户信息,都离不开Linux中用户身份与文件权限相关知识。

一、用户身份与能力

Linux的设计初衷之一就是为了满足多个用户同时操作的需求,因此Linux必须基本很好的安全性。
因此Linux系统中必须有一个root用户(超级管理员)拥有最高的系统所有权,能够管理系统的各项功能。

  • 正是因为root权限拥有整个系统中的最高权力 因此使用root权限进行操作如果执行了错误的命令,可能会直接毁掉整个系统。
  • 在学习的过程中可以使用root权限进行学习,但是在真正工作和实践的时候还是要区分用户进行操作。
  • Linux系统中的管理员就是root,其实说法不准确。用户(root)是系统管理员,不是因为它叫root而是因为该用户的身份码(UID:User IDentification)的数值为0。

说到多用户与多任务(同时多个终端登录操作系统并进行多任务操作),就不得不说一下linux操作系统和windows操作系统

windowsLinux
是否多任务
是否多用户现在常用的Windows操作系统都是多用户的操作系统:
win7、win10;Windows XP的多用户切换方式

在Linux中多个用户同时登录,cpu是根据不同用户的优先级来分配CPU运算资源

1. useradd

useradd命令用于创建用户,格式:useradd [options] username

  1. 使用useradd命令创建用户,默认将用户家目录放在/home目录中,默认使用的Shell解释器为/bin/bash
  2. 并且同时创建一个跟这个username同名的基本用户组
参数作用
-d指定用户的家目录(默认为/home/username
-e账户的到期时间,格式为:YYYY-MM-DD
-u指定账户的uid
-g指定一个初始的用户组(必须存在)
-G指定一个或多个扩展用户组
-N不创建和username同名的基本用户组
-s指定该用户默认的Shell解释器

下面的一刚命令就是创建一个username为testuser的用户,该用户的uid为6666 指定路径/home/testusername/、指定shell解释器为/sbin/nologin(被指定为该解释器的用户无法登陆系统)

root@juzuo:/home useradd -d /home/testusername/ -u 6666 -s /sbin/nologin testuser

2. groupadd

groupadd命令用于创建用户组, 格式:groupadd [options] groupname

  • 用户组的概念就是一组用户,拥有相似会或者相同权限,或者相似作用。
  • Linux中为了更加高效的指派系统中各个用户的权限,在工作中常常会把几个用户加入到用一个组里,这样可以方便针对同一类用户统一安排权限。

这个命令用于创建一个用户组,现在把刚刚创建的用户testuser添加到这个用户组

root@juzuodaliyu:/home groupadd test
root@juzuodaliyu:/home usermod -g test  testuser
root@juzuodaliyu:/home id testuser
uid=6666(testuser) gid=6667(test) groups=6667(test)

这里用到了命令usermod 意思是修改用户属性。具体用法和含义参照3

3. usermod

usermod命令用于修改用户的属性
格式usermod [options] 用户名

  • Linux系统中一切都是文件,因此在系统中创建用户也就是修改配置文件的过程。
  • 用户的信息保存在 /etc/passwd文件,可以直接使用vim编辑器修改用户属性,也可以使用usermod修改用户属性
# 这条命令就是修改用户testuser的用户组属性
root@juzuodaliyu:/home usermod -g test  testuser
参数作用
-c填写用户的备注信息
-d -ml两个参数连用,可以重新指定用户的家目录并且自动把旧的数据转移过去
-e账户的到期时间(同useradd)
-g变更用户所属用户组
-G变更扩展用户组
-L锁定用户禁止其登录
-U解锁用户,允许其登录系统
-s变更默认终端
-u修改用户的uid

具体的用户参照第2条,在自己的虚拟机或者是服务器上实验吧。

4. passwd

  • passwd命令用于修改用户密码(口令)、过期时间、认证信息等(这个“等”我一直没有找到其他的用法,如果小伙伴有知道的请留言
  • 一般系统管理员用这个命令更多的是用来更改密码,格式为 passwd [-options] [username]
passwd username 
# 然后根据提示修改密码即可
参数含义
-l锁定用户,禁止登陆
-u解锁用户,允许登陆
允许通过标准输入修改用户密码,比如第一篇文章中用过的
echo "newpassword" | passwd --stdin Username
-d使该用户可用密码登录系统
-e强制用户在下次登录时修改密码
-S显示用户的密码是否被锁定,以及密码锁采用的加密算法名称

5. userdel

  • userdel命令用于删除用户。格式:userdel [-options] Username
  • 使用userdel删除用户的时候,用户的家目录是默认保存下来的,使用-r参数可以连带一起删除用户的目录
参数作用
-f强制删除用户
-r
root@juzuodaliyun:/home userdel -r testuser
userdel: group testuser not removed because it is not the primary group of user testuser.
userdel: testuser mail spool (/var/mail/testuser) not found
userdel: /home/testusername/ not owned by testuser, not removing
# 查看是否删除
root@juzuodaliyun:/home id testuser
id: ‘testuser’: no such user

百度百科
微软社区

上一篇,关于Linux中的特殊符号、重定向、环境变量

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值