linux账号与身份管理系统,Linux基础篇 八 (Linux帐号与身份管理)

news/2024/7/5 18:04:46

标签: UID/GID,passwd,shadow,群组管理groups/newgrp/groupadd/groupdel,帐号管理useradd/passwd/usermod/ userdel,列出或修改shell,用户信息设定与查阅chfn/finger/id,帐户切换su

1. UID与GID

当你要登入你的 Linux 主机的时候,那个 /etc/passwd 与 /etc/shadow 就必须要让系统读取,这两个文件是linux备份的重点;

>/etc/passwd

a. 当你要作另一个系统管理员账号时,你可以将该账号的 UID 改成 0 即可;这也就是说,一部系统上面的系统管理员不见得只有 root;

b. 如果你有个账号的使用空间特别的大,你想要将该账号的根目录移动到其它的硬盘去,没有错!可以在这里进行修改!预设的使用者根目录在 /home/yourIDname

c. Shell:所谓的 shell 是用来沟通人类下达的指令与硬件之间真正动作的界面!我们通常使用 /bin/bash 这个 shell 来进行指令的下达!登入 Linux 时为何预设是 bash 呢?就是这里设定的!

>/etc/shadow

a. /etc/passwd中的'x'项即表示该帐号密码移到这里加密了。

b. 只有 root 才可以读写此文件;

c. 你的 root 密码忘记了!要怎么办?重新安装吗?另外, 有的时候是被入侵了, root 的密码被更动过,该如何是好?

====>这个时候就必须要使用到 /etc/shadow 这个数据了!我们知道密码是存在这个档案中的,所以只要你能够以各种可行的方法开机进入Linux ,例如单人维护模式,或者是以 live CD (KNOPPIX) 来进入 Linux 系统。之后,将硬盘顺利挂载,然后进入 /etc/shadow 这个档案中,将 root 的密码这一栏全部清空!然后再登入 Linux 一次,这个时候 root 将不需要密码 (有的时候需要输入空格符) 就可以登入了!这个时候请赶快以 passwd 设定 root 密码即可。

2. 群组: 有效与初始群组、groups, newgrp

>/etc/group ---->记录 GID 与群组名称的对应,包括该群组里面包含的所有用户帐号

[root@linux ~]#vi /etc/group    root:x:0:root[,shmily_liu] ----->添加用户shmily_liu到root群组,注意[]部分不要空格

[shmily_liu@linux ~]$ groups    ----->显示shmily_liu用户所处的所有群组,其中显示的第一个为有效群组

[dmtsai@linux ~]$ newgrp users ----->更改有效群组为users

>/etc/gshadow

3. 帐号管理

>新增与移除使用者: useradd, 相关设定档, passwd, usermod, userdel

[root@linux ~]# useradd [-u UID] [-g initial_group] [-G other_group] -[Mm] [-c 说明栏] [-d home] [-s shell] username   -u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;

-g :后面接的那个群组名称就是我们上面提到的 initial group, 该 group ID (GID) 会被放置到 /etc/passwd 的第四个字段内。

-G :后面接的群组名称则是这个账号还可以支持的群组。这个参数会修改 /etc/group 内的相关资料!

-M :强制!不要建立使用者家目录

-m :强制!要建立使用者家目录!

-c :这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们设定的啦~

-d :指定某个目录成为家目录,而不要使用默认值;

-r :建立一个系统的账号,这个账号的 UID 会有限制 (/etc/login.defs)(UID在500以下)

-s :后面接一个 shell ,预设是 /bin/bash

相关设定档: /etc/default/useradd

---->useradd不使用参数时,会自动参考这个文档来建立用户的初始环境,该档案的内容如下:

GROUP=100         <==预设的群组

HOME=/home       <==预设的家目录所在目录

INACTIVE=-1         <==在 /etc/shadow 内的第 7 栏

EXPIRE=               <==在 /etc/shadow 内的第 8 栏

SHELL=/bin/bash <==预设的 shell

SKEL=/etc/skel    <==使用者家目录的内容数据参考目录

而对于群组GROUP,若无指定initial group,则系统会主动建立一个与账号相同的群组名称,以该群组作为使用者的initial group! 而上面的/etc/skel/*就是新建用户根目录的参考目录,即新建目录后的内容都是从这里复制过来的,所以通过编辑/skel/下的.bashrc,可以自定义新建用户的根目录内容!事实上,了解了系统的运作过程,及useradd指令执行中会参考和修改到的文件,我们自己动手直接修改这几个档案也是可以的。

[root@linux ~]# passwd [useraccount] ---->root下设定或强制修改其他用户密码

[shmily_liu@linux ~]# passwd          ---->shmily_liu重设自己的密码

[root@linux ~]# usermod [-cdegGlsuLU] username ---->用于进行账号相关数据的微调,等效于直接修改/etc/passwd或/etc/shadow相应字段.

[root@linux ~]# userdel [-r] username ---->删除用户及其相关档案: /etc/passwd /etc/shadow /home/username

-r :连同使用者的家目录也一起删除

一般而言,如果该账号只是暂时不启用的话,那么将 /etc/shadow 里头最后倒数一个字段设定为 0 就可以让该账号无法使用,但是所有跟

该账号相关的数据都会留下来!使用 userdel 的时机通常是你真的确定不要让该用户在主机上面使用任何数据了!

>一般用户功能: chfn, chsh ---->以上都是系统管理员才能使用的指令,对于一般用户可以做以下操作.

[shmily_liu@linux ~]$ chsh [-ls]   -l :列出目前系统上面可用的 shell ,其实就是 /etc/shells 的内容!

-s :设定修改自己的 Shell

[root@linux ~]# chfn [-foph]   -f :后面接完整的大名;

-o :办公室的房间号码;

-p :办公室的电话号码;

-h :家里的电话号码!

[root@linux ~]# finger [-s] username ---->查阅chfn设定的用户信息

-s :使用长串数据输出格式。

[root@linux ~]# id [username] ---->查询某人或自己的相关 UID/GID 等等的信息

>新增与移除群组

[root@linux ~]# groupadd [-g gid] [-r]   -g :后面接某个特定的 GID ,用来直接给予某个 GID ~

-r :建立系统群组啦!与 /etc/login.defs 内的 GID_MIN 有关

[root@linux ~]# groupdel [groupname]

>帐户切换

[root@linux ~]# su [-lcm] [username]   ---->su切换过程中要注意用户环境的变化,是否读入欲切换的身份者的环境参数档案!

- :如果执行 su - 时,表示该使用者想要变换身份成为 root ,且使用 root 的环境设定参数档,如 /root/.bash_profile 等等。

-l :后面可以接使用者,例如 su -l dmtsai ,这个 -l 好处是,可使用欲变换身份者他的所有相关环境设定档。

-m :-m 与 -p 是一样的,表示使用目前的环境设定,而不重新读取新使用者的设定档。

-c :仅进行一次指令,所以 -c 后面可以加上指令!

>查询使用者: w, who, last, lastlog

>使用者对谈: talk, mesg, wall

>使用者邮件信箱: mail

每个 Linux 主机上面的使用者都具有一个 mailbox, 都会放置在 /var/spool/mail 里面

[shmily_liu@linux ~]$ mail root -s "nice to meet you" ---->给root发信,"..."为标题

[shmily_liu@linux ~]$ mail                             ---->收信

(shmily_soc)


http://www.niftyadmin.cn/n/4390366.html

相关文章

linux 管道交互,Linux C:具有独立读写命名管道的“交互式会话”?

我正在尝试使用“使用命名管道的进程间通信简介 - 使用命名管道的全双工通信”&#xff0c;link;特别是fd_server.c(包括如下供参考)Linux C&#xff1a;具有独立读写命名管道的“交互式会话”&#xff1f;这是我的信息&#xff0c;并编译行&#xff1a;:~$ cat /etc/issueUbun…

linux掌握物理页面的分配和回收,系统软件课程设计指导书-2010-12

2、本次课程设计要求阅读的Linux源代码版本为2.4.18,其他版本无效&#xff1b;3、结合操作系统基本原理进行代码分析&#xff0c;并进行详细分析和完整注释&#xff0c;注释越详细&#xff0c;成绩越好&#xff1b;5、设计型题目要按照要求完成全部算法6、一定要充分地考虑个人…

找不到linux32位的,找不到crtn。o,連接64位系統上的32位代碼

Im attempting to assemble some 32-bit code using NASM and GCC on a 64-bit system. I use the following two commands我正在嘗試在64位系統上使用NASM和GCC來組裝一些32位的代碼。我使用以下兩個命令nasm -f elf32 -g -F stabs coc.asmgcc -m32 -o coc coc.oNASM appears …

python yield的解释

链接地址&#xff1a; http://pyzh.readthedocs.io/en/latest/the-python-yield-keyword-explained.html https://www.jianshu.com/p/d09778f4e055

springsecurity中session失效后怎样处理_结合Spring Security进行web应用会话安全管理

在本文中&#xff0c;将为大家说明如何结合Spring Security 和Spring Session管理web应用的会话。一、Spring Security创建使用session的方法Spring Security提供4种方式精确的控制会话的创建&#xff1a;always&#xff1a;如果当前请求没有session存在&#xff0c;Spring Sec…

linux cat最新,linux cat

Linux命令总结—cat命令(1)命令功能cat命令用于将多个文件连接&#xff0c;并将结果通过标准输出显示出来。(2)命令语法cat(选项) (参数)(3)选项说明-n或-number&#xff1a;由1开始对所有输出的行数编号&#xff1b;-b或—number-nonblank&#xff1a;和-n相似&#xff0c;只不…

(四)mybatis缓存、事务、插件的基本知识

mybatis缓存、事务、插件的基础 一、缓存 &#xff08;一&#xff09;一级缓存与二级缓存 一级缓存 为了获得更好的性能&#xff0c;最重要的就是一级缓存。每个session对象维持一个一级缓存&#xff0c;session对象创建时缓存创建&#xff0c;session对象释放时缓存销毁。 缓存…

c语言typedef作用,C语言typedef的使用

C语言typedef的使用typedef 关键字能帮助你简化复杂的定义并让你的代码简洁可靠&#xff0c;当然&#xff0c;可靠这一点我还是持保留态度&#xff0c;因人而异吧。具体是如何使用呢&#xff1f;以下仅供参考&#xff01;具体方法如下&#xff1a;C 语言提供 typedef 关键字&am…