1. linux的账号与群组

1.1 账户名称:/etc/passwd:

head -n 5 /etc/password  #取前5行
  1. 账号名称,对应UID
  2. 密码,早期是在这里,后来转到了/etc/shadow中,所以这里都是x
  3. UID的范围:0系统管理员,1-99留给系统预设的账号,100-499保留给一些服务来使用 ,500-65535给一般用户
  4. GID这是用户的初始化用户组:使用这一登录系统,就拥有这个群组的相关权限。
  5. 用户说明,基本没用
  6. 用户家目录
  7. 使用的shell,bash shell是linux默认使用的shell

uname -r可以来查找系统核心

1.2 账户密码:/etc/shadow:

head -n 5 /etc/shadow  #取前5行
grep 'root' /etc/shadow |awk '{print substr($0,6,34)}' #取密码段
  1. 账号名称
  2. 密码 采用MD5进行加密的密码,含有$1$的标志的34位密码组,如果密码为*或者!,则表示这个账号无法登陆。
  3. 最近修改密码的日期,以1970年1月1日作为1
  4. 密码不可更改日期,修改之后第几天可以再次修改密码
  5. 密码需要重新更新的天数
  6. 密码需要变更期限前的警告期限
  7. 密码过期的宽限时间
  8. 账号失效日期
  9. 保留

1.3 群用户:/etc/group:

groups #查看所属的用户组,有效用户组为第一个,
newgrp 用户组 #改变用户组
exit #退出当前用户组
  1. 用户组
  2. 密码,为x
  3. 用户组的GID
  4. 该用户组所支持的用户

1.4 群用户密码:/etc/gshadow:

  1. 用户组
  2. 密码,如果为*和!则不可登录
  3. 用户组管理员的账号
  4. 该用户组所属(支持)的用户,与/etc/group内容一样

2. 账号管理

2.1 新增与移除使用者、新增与移除群组:/etc/passwd:

passwd、usermod、useradd这三个命令都是root用户使用的,普通用户不能使用。

新增用户

grep user3 /etc/passwd /etc/shadow /etc/group /etc/gshadow  #查找这四个文件中有user3的部分。

删除用户

修改账号信息

插入图2.1.4

初始化群组和有效群组的改变。

usermod -g test2 -G 502 test1 #-g修改初始化群组,-G修改有效用户组

2.2 密码管理:/etc/passwd:

passwd user #修改密码

2.3 chfn chsh finger id:/etc/passwd:

chsh -s /bin/csh #root也可以用这个改,也可以用usermod
chsh -l #显示当前可用的shell

修改自己的相关信息

chfn #会依次让你修改大名、办公室房间号码、办公室电话号码、家里电话,改变的信息是/etc/passwd的第五栏使用者的信息说明栏

读取修改的信息,也就是用chfn修改的那些东西。

也可以用来查找当前系统的登录信息

id  #uid、gid、所支持的群组。

2.4 新增和移除群组:/etc/passwd:

3. 使用者用户切换

3.1 su:

3.2 sudo visudo:

sudo如果没有制定切换的账号,则默认使用root
sudo -u "#501" touch /home/test2/3.txt#必须用""包括起来。
sudo -u "#501" -p %H ls /home/test2 #完整的主机名称
sudo -u "#501" -p %h ls /home/test2 #主机名称
sudo -u test2 -p %U ls /home/test2 #切换到的账户名称
sudo -u test2 -p %u ls /home/test2 #使用者账户的名称



visudo是用来编辑/etc/sudoers,vi只可以可读。

vigr 编辑/etc/group

vimpw 编辑/etc/passwd

find / -perm -4000 | xargs ls -lhd  #查找系统下所有包含s权限的文件。

4. 使用者的特殊shell与PAM模块

4.1 特殊的shell:

cat /etc/passwd | more

usermod -s /sbin/nologin test1  #给test1指定nologin的shell

vi /etc/nologin.txt #然后输入不可登陆的信息

记录次数

#!/bin/awk -f
BEGIN{
FS=":"
}
{
if ($7=="/bin/bash") bash=bash+1
if ($7=="/sbin/nologin") nologin=nologin+1
}
END{
print "/bin/bash times is :" bash
print "/sbin/nologin times is :" nologin
}

使用bash shell

#!/bin/bash
read -p "please input the /etc/passwd :" path if [ -z "$path" -o "$path" != "/etc/passwd -o ! -e "$path" ];then
fi allshell='cut -d : -f 7 "$path"'
for oneshell in $allshell
do
if [ "$oneshell" = "/bin/bash" ];then
bash=$(($bash+1))
fi
if [ "$oneshell" = "/sbin/nologin" ];then
nologin=$(($nologin+1))
fi
done echo "/bin/bash has $bash times"
echo "/sbin/nologin has $nologin times"

4.2 PAM模块:

在/etc/security/access.conf中加入

  - : test1 : ALL EXCEPT 127.0.0.0/24 #仅限本地登陆,其他的ip都不能登陆。

5. 使用者的特殊shell与PAM模块

5.1 查询使用者:

last -n 5 -d
last -f wtmp2 #默认读取/var/log/wtmp,如果需要指定读另外一个,需加上-f参数

5.2 使用者talk:

mesg y
mesg n
write test1

如果root发送广播信息,即使其他用户关闭信息接收,也会收到信息。

5.3 使用者邮箱:

stty erase ^H
mail -s "this is first test" root@localhost
this is first test

1. linux的账号与群组

6.1 常用的一些命名:

6.2 建立用户流程:

vi /etc/group    #打开/etc/group文件进行编辑
test4:x:505: #加入test4用户组
grpconv #group和gshadow同步
grep test4 /etc/gshadow #查找gshadow,确认已经同步
vi /etc/passwd #打开/etc/passwd文件进行编辑
test4:x:505:505::/home/yesy4:/bin/bash #加入test4用户
pwconv #passwd和shadow同步
grep test4 /etc/shadow #查找shadow,确认已经同步
passwd test4 #输入密码 #输入用户的密码(设置)
mkdir /home/test4 #创建使用者家目录
ls -la /etc/skel #显示/etc/skel下的所有文件
cp -a /etc/skel/.[a-z]* /home/test4 #将/etc/skel下的所有文件都拷贝到使用者家目录中
ls -la /home/test4 #显示使用者家目录的所有文件和属性
chown -R test4:test4 /home/test4 #吧家目录的属性由root改为test4
ls -la /home/test4 #显示使用者家目录的所有文件和属性

vigr /etc/group    #打开/etc/group文件进行编辑
test5:x:505: #加入test5用户组
选择y #进入编辑gshadow
test5:x:: #加入test5用户组密码
vipw /etc/passwd #打开/etc/passwd文件进行编辑
test5:x:505:505::/home/yesy4:/bin/bash #加入test5用户
选择y #进入编辑shadow
test5:!!:14519:0:99999:7:3:: #加入test5shadow密码文件
passwd test4 #输入密码 #输入用户的密码(设置)
mkdir /home/test5 #创建使用者家目录
ls -la /etc/skel #显示/etc/skel下的所有文件
cp -a /etc/skel/.[a-z]* /home/test5 #将/etc/skel下的所有文件都拷贝到使用者家目录中
ls -la /home/test5 #显示使用者家目录的所有文件和属性
chown -R test4:test5 /home/test5 #吧家目录的属性由root改为test5
ls -la /home/test5 #显示使用者家目录的所有文件和属性

6.3 批量建立用户脚本:

建立用户

vi useradd.sh

#!/bin/bash
accountfile=user:passwd
test -e "$accountfile" && rm -f "$accountfile"; touch "$accountfile" || touch "$accountfile"
read -p "please input your zhuanye:" zhuanye
read -p "please input your grade:" grade
read -p "please input the start number:" start_nu
read -p "please input the user number:" user_nu
read -p "please choice passwd stardand:1)same as usernaem 2)random" pwd if [ "$zhuanye" ="" ];then
echo "you should input the zhuanye!!"; exit 1
fi
testing1='echo $grade | grep [^0-9]'
testing2='echo $start_nu | grep [^0-9]'
testing3='echo $user_nu | grep [^0-9]'
if [ "$testing1" !="" -o "$testing2" !="" -o "$testing3" !="" ];then
echo "the grade or start number or user number has include characters!!"; exit 1
fi for ((i=$start_nu;i<$(($start_nu+$user_nu));i++))
do
account=$zhuanye$grade$i
if [ "$pwd" = "1" ];then
password="$account"
else
password=""
test_nu=0
until [ "$test_nu" = "6" ]
do
temp_nu=$(($RANDOM*50/32767+30))
until [ "$test_nu" != "60" ]
do
temp_nu=$(($RANDOM*50/32767+30))
done
temp_ch='printf "\x$temp_nu"'
password=$password$temp_ch
temp_nu=$(($temp_nu+1))
done
fi
echo "$account":"$password" >>"$accountfile"
done
cat "$accountfile" | cut -d ":" | xargs -n 1 useradd
chpasswd < "$accountfile"
pwconv
echo "OK,successful"

删除用户

vi userdel.sh

#!/bin/bash
cat "user:passwd" | cut -d : -f1 | xargs -n 1 userdel -r

linux 基础9-账号与身份管理的更多相关文章

  1. linux基础之用户及用户组管理

    本节内容 用户管理 1. 为什么需要用户? 1.linux是一个多用户系统 2.权限管理(权限最小化) 2. 用户相关文件 /etc/passwd -->用户基本信息 /etc/shadow - ...

  2. 鸟哥的Linux私房菜——第十七章:Linux 账号与身份管理

    视频链接:http://www.bilibili.com/video/av10669732/ 1. Linux 的账号与群组1.1 使用者识别: UID 与 GID1.2 使用者账号:/etc/pas ...

  3. Linux基础学习笔记5-软件管理

    包管理器 二进制应用程序的组成部分: 二进制文件.库文件.配置文件.帮助文件 程序包管理器: debian:deb文件.dpkg包管理器 redhat:rpm文件.rpm包管理器 rpm:Redhat ...

  4. Linux基础学习笔记2-文件管理和重定向

    本节内容 1)文件系统结构元素 2)创建和查看文件 3)复制.转移和删除文件 4)软和硬链接 5)三种I/O设备 6)把I/O重定向至文件 7)使用管道 文件系统和结构 文件系统 文件和目录被组织成一 ...

  5. Linux 基础教程 35-软件包管理-YUM

    YUM基础     使用RPM在Linux中安装.卸载软件或服务进会经常碰到RPM包的依赖,而我们在安装软件A时,提示依赖于软件B,安装软件B时又会出现提示依赖于软件C等一系列的依赖关系.这时大家会提 ...

  6. Linux 基础教程 34-软件包管理-RPM

        对于Linux而言管理各类软件,如安装.卸载和升级等是常有的事情和必备的技能.以CentOS为例,常用的安装包命令有rpm和yum. RPM基础     RPM(RedHat Package ...

  7. Linux基础3(用户/组管理,rpm,yum,源码安装软件)

    用户管理 与用户相关的配置文件 /etc/passwd /etc/shadow /etc/skel /etc/defalut/useradd /etc/login.defs useradd userm ...

  8. Linux基础: 网络命令和进程管理

    ​  netstat lsof ps pstree pkill/kill (了解jenkins git,排查环境) 查询服务器之间是否有链接(netstat -an) 某个服务是否启动(了解服务对应的 ...

  9. linux基础 用户(组)管理

    修改/etc/shadow文件 1.chage -m MINDAYS USERNAME#设置密码修改最小天数2.chage -M MAXDAYS USERNAME#设置密码修改最大天数3.chage ...

随机推荐

  1. python reduce和偏函数partial

    functools模块 reduce方法: reduce方法 reduce方法,顾名思义就是减少 可迭代对象不能为空,初始值没提供就在可迭代对象中去一个元素 from functools import ...

  2. jQuery动态创建html元素的常用方法汇总

    在使用jQuery进行WEB程序设计的时候非常有用.分享给大家供大家参考.具体方法如下: 一般来说,可以通过以下几种方式动态创建html元素: 1.使用jQuery创建元素的语法 2.把动态内容存放到 ...

  3. react中异步的使用

    let promise; promise = this.props.corporationService.preSearchPage(params); promise.then((data) => ...

  4. macpro锁屏后没有进入睡眠

    使用命令pmset -g查看,如图,钉钉阻止了屏幕的睡眠,找了下钉钉的配置,也没有发现有关的内容,重启钉钉后问题解决 displaysleep 10 (display sleep prevented ...

  5. 15.Git四种协议-本地协议(local)、HTTP协议、SSH协议、Git协议

    1.本地协议(loacl) 最基本的协议,其远程仓库其实就是硬盘内部的一个目录(例如D:\\project).常见于团队内的人对一个共享的文件系统(例如NFS)具有访问权限,或者多人共用一台电脑的情况 ...

  6. vue+element项目中过滤输入框特殊字符小结

    可以在main.js中写入方法 Vue.prototype.validSe = function (value, number = 255) { value = value.replace(/[`-* ...

  7. 最新 二六三网络通信java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿. 二六三网络通信等10家互联网公司的校招Offer,因为某些自身原因最终选择了 二六三网络通信.6.7月主要是做系统复习.项 ...

  8. MySQL 事务一览

    MySQL 中的事务? 对 MySQL 来说,事务通常是一组包含对数据库操作的集合.在执行时,只有在该组内的事务都执行成功,这个事务才算执行成功,否则就算失败.MySQL 中,事务支持是在引擎层实现的 ...

  9. 工作总结---CTO(张王岩)的笔记--

    1. 语言的基础:  变量.控制语句.方法 .数组 2. 面向对象  OOP 3. 容器  存储数据.分析数据  介绍[IO  File   字节流    字符流  CommonsIO] input  ...

  10. win10系统不能ping通vmware虚假机解决办法

    在使用vmware安装虚拟机后,在虚拟机里面可以上网,但就是不能在宿主机通过远程连接工具连接 同时也不能ping通虚拟机 检查网络配置 查看网关 在宿主机打开 ip地址填写刚刚查看的网关,同时把子网掩 ...