linux之用户,用户组,软件操作

Posted taosiyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux之用户,用户组,软件操作相关的知识,希望对你有一定的参考价值。

用户

  • 超级管理员用户 root 0
  • 普通用户 (0-65535)
    • 系统用户:启动系统服务和进程的用户,不可以登陆. (1-999centos7)(1-499centos6)
    • 可登陆用户:能登录系统的用户(1000-65535 centos7)(500-65535 centos6)

普通用户的id是递增的,系统用户的id是递减的

用户添加useradd

创建用户
Usage: useradd [options] LOGIN
useradd taosiyu

-d #  指定用户的家目录
useradd -d /文件夹/文件 用户名
ll home
ll /opt/taosiyu
cd /opt/taosiyu
# bashrc 别名
# profile

-g # 指定用户组的id
useradd -g 组 用户名
id taosiyu

-G # 指定用户的附加组    groups 附加组
useradd -G root,taosiyu1 taosiyu2
# 把taosiyu2 加到root, 和taosiyu1的附加组中 在组里就能使用组里的权限处理文件
id taosiyu3

cd /text/
ll /etc/skel/ -a

-k # 指定复制哪个文件夹下的内容,需要和-m一起使用
-m # 创建用户的家目录
useradd -k /etc/sysconfig/metwork-scripts/ -m taosiyu
ll /home/taosiyu

-c + 'message' # 创建指定用户的描述信息
useradd -c "where are your future"
vim /etc/passwd  
# /etc/passwd查看描述信息"message"

-N 
# 不创建同名的组,以user为组 GROUP=100 默认100,
# 这里就是系统用户组
useradd -N taosiyu

-r 
useradd -r taosiyu
id taosiyu

-s # 指定用户登录后使用的shell
cat /etc/shells
useradd -s /sbin-nogloin 用户名 
passwd taosiyu
ssh taosiyu@190.198.107.133
#nologin登录后默认被系统退出


-u # 指定用户的id,创建用户时uid始终以最大uid顺延
useradd -u 2000 taosiyu
id taosiyu
useradd taosiyu
useradd taosiyu1
id taosiyu1 # uid=2001

-D 显示系统的默认配置
useradd -D # 查看系统配置
-D [option] -s可以修改系统的默认配置.

每创建一个用户都是从/etc/skel复制
  • 相关文件
    • /etc/default/useradd 创建用户的默认文件.
    • /etc/skel/*默认复制的文件
    • /etc/login.defs

用户修改usermod

usermod修改
-c # 修改描述信息
usermod -c 'taosiyu made in furtue' taosiyu
grep 'taosiyu' /etc/passwd

-d # 修改家目录,默认不会创建新目录.如果向移动家目录,则需要使用-m
-m # 移动家目录,只能和-d一起使用
cd ~
ll /home
usermod -d /opt/taosiyu taosiyu
ll /home
grep 'taosiyu' /etc/passwd

-g # 修改用户组
-G # 修改客户的附加组,默认情况是替换,将之前的附加组替换成新设置的(后面必须是组)
usermode -G root,taosiyu taosiyu1
id taosiyu1
username -G taosiyu2 taosiyu1 # taosiyu2替换上边的root,taosiyu附加组

-a # 修改客户的添加,默认是追加附加组 -a -G 顺序不能变
usermod -a -G root taosiyu1

-l +newname +oldname # 修改用户的登录名
usermod -l taosiyu guorui
id taosiyu

-L # 锁定用户,不能登录系统,修改密码默认解锁用户锁.
passwd taosiyu
usermod -L taosiyu
ssh taosiyu@192.168.107.133  # 拒绝登录

-U # 解锁用户锁
-s # 修改用户登录后的shell
-u # 修改用户的uid
-e # 失效日期,后面加年月日,修改用户的失效时间,失效后无法登陆
usermod -e 2019-08-07 taosiyu # 后面加年月日 

删除用户userdel

默认删除用户,不删除用户家目录
userdel taosiyu
id taosiyu
ll /home/taosiyu

-f # 强制删除,登录状态下也能删除
# 删除用户时,默认家目录不会被删除,默认情况下,用户登录状态下不能删除用户,强制删除后用户不退出还可以使用.
-r # 删除家目录
userdel -f -r taosiyu

查看用户相关信息id

-g 只显示组id
-G 只显示附加组id
-u 只显示用户id
-n 显示名称,需要和显示id搭配使用

切换用户

su [options] [-] [USER [arg]...]

-    # 完整切换,登录式切换,环境变量等都会切换
-c   # 切换用户执行命令,然后切换回原用户

echo $PATH # 查看环境变量
exit # 退出切换

切换用户的方式

  • 完整切换:su - username 登录式切换,环境变量等都会切换
  • 不完整切换:su username不会切换用户的环境变量,家目录等.
  • root切换普通用户不需要密码,非root用户切换需要密码

切换用户执行命令

su - taosiyu -c 'whoami'
ll /home/root

sudo执行本身不能执行的命令

sudo 修改配置文件为/etc/sudoers

vim /etc/sudoers
taosiyu ALL=(all) NOPASSWD:ALL
sudo useradd guorui

用户名 ALL=(ALL)   NOPASSWD:ALL
# NOPASSWD,不用输入密码

/etc/passwd文件

用户名:密码,使用x占位:UID:GID:描述信息:家目录:登录后使用的shell

设置密码passwd

passwd taosiyu # 设置密码

-d # delete 删除指定用户的密码,删除之后用户不能登陆
passwd -d taosiyu

-l # 锁定用户
-u # 解锁用户
-e # 在下次登陆以后强制用户修改密码
-f # 强制操作
-x maximun=Days    # 密码的最长使用时间
-n minmum=DAYS     # 密码的最短使用时间
-waningday         # 密码过期多长时间提醒
-i --inactive=Days # 密码过期多久之后该用户不能使用
# inacticeday  密码过期多长时间以后禁用
--stdin            # 从标准输入读取密码
echo '123'|passwd --stdin user # 修改密码

存放文件/etc/shadow

  • 用户名
  • 密码($6 加密方式 默认sha512)$盐$加密后的密码串$
  • : 从1970年1月1日到最后一次修改密码经过的时间
  • 密码的最短使用时间 (0表示随时可以修改)
  • 密码的最常使用时间(99999表示永不过期)
  • 密码过期多久提醒(默认是一周)
  • 密码过期多长时间锁定(:)
  • 从1970年1月1日开始算起,多长时间后账后失效

密码的复杂性策略

  • 密码必须包括数字,大小写,特殊字符
  • 密码必须是12位以上
  • 要求密码不能为弱口令
  • 必须为随机密码
  • 3个月或者半年修改一次

机器免密登录

ssh_keygen   # 点击回车
ssh_copy-id root@192.168.21.129 # 要登录的机器

修改用户密码策略chage

chage [option] ... login
-d 将密码修改时间改为指定的时间
-E 指定用户的过期时间
-I 密码过期后经过多少天后账户会被禁用
-l 显示用户的账号信息
-m 两次修改密码之间的最少天数
-M 两次修改密码的最大天数
-W 设置过期警告天数
直接chage login 可以根据提示来设置
change login # 可以使用交互式的修改密码策略

chfn修改用户的个人信息

修改用户的个人信息

用户组

  • 超级用户组 root 0
  • 普通用户组
    • 系统用户组 id(1-999 centos7) 1-499(centos6)
    • 可登录用户组 1000-65535(centos7) 500-65535(centos6)
groupadd
-g # 指定组id
-r # 创建系统用户组

groupadd taosiyu
tail -1 /etc/group

groupadd -r taoosiyu

/etc/group 存放组信息

组的文件/etc/group

组名:密码(x占位):gid:组成员

/etc/gshadow

  • 组名
  • 密码
  • 组管理员的密码
  • 组成员

修改组信息groupmod

-g 修改gid
-n 修改组名
-p 密码(一般不会给组设置密码)

删除组groupdel

groupdel taosiyu

软件

windows中软件以exe结尾

centos(redhat)中软件以rpm结尾 (radhat package manager) 需手动解决依赖关系

yum 自动解决依赖关系

mirrors.aliyun.com

包的命名规范

mysql -python -1.2.5 -1.e17.x864_64.rpm
名字-版本 (大版本.小版本.修订版)-打包版本.可用的系统.架构.rpm

架构(cpu):
    64位:x86_64
    32位:x86  i386  i486  i686  ppc  noarch(表示通用)

包的来源

  • 光盘
  • 第三方网站
  • 官方网站
  • 自己做
  • https://pkgs.org/
  • epel(第三方包的结合地,阿里云里就有)
  • https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
pip install openpyx1 -i https://pypi.douban.com/simple
# 指定源

rpm包的查询

rpm -q      # 查询指定的包是否安装 
-a          # all 表示当前系统安装的所有的包
rpm -qa 

-f filename # 查询指定的文件由哪个包安装生成
rpm -qf /etc/ssh/sshd_config

rpm -q redis
rpm -qa |grep redis
rpm -qa |grep openssh

-c          # 查询指定的包生成的配置文件
rpm -qc openssh-server

yum install -y redis

-d          # 查询指定的包生成的哪些文档(man帮助文档)
rpm -qd openssh-server

-i          # 查询指定包的详细信息
rpm -qi openssh-server

-l          # 查询指定的包生成的文件
rpm -ql openssh-server

常用的选项
-qi   -qa  -ql  -qc  -qd

yum

yum会自动解决依赖关系

仓库 存放的是多个包和包的元数据信息(所在仓库,依赖信息等)

仓库(repos)的位置:

  • http://
  • https://
  • ftp://
  • file://(本地文件)
  • 配置文件存放在/etc/yum.repos.d

yum配置文件

[base] # 仓库的名字
name=CentOS-$releasever - Base - mirrors.aliyun.com # 描述信息
failovermethod=priority # 定义挑选顺序 priority 按顺序 roundrobin 随机
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
enabled =0|1 # 是否启用,1启用,0是不启用
gpgcheck=0|1 # 使用校验
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 
# 校验文件
默认值

$releasever 发行版
$basearch 系统架构

yum repolist # 查看仓库

yum源

- 阿里  163 sohu 腾讯 北大  中科大学

yum命令

安装

yum repolist        # 查看仓库
yum list            # 仓库里所有的包,安装的包前面带@符号

yum list|grep openssh

yum insttall        # 安装包
yum install openssh_ldap

yum reinstall       # 重新安装
yum install openssh_ldep

yum update          # 更新包
yum update pkg 包名 # 更新指定包
yum update wget
rpm -q wget

yum downgrede       # weget降级 + pkg包名
yum downgrade wget

yump check-update  # 检查包是否更新

yum remove         # 卸载 + pkg包名
yum remove wget

yum info name      # 显示包的详细信息 + pkg包名

yum clean          # 删除源数据信息

yum makecahe       # 重新构建源数据信息

yum search         # 搜索软件包(包名称,描述信息只要包含就可以搜索出来)
yum search ssh 

yum provides       # 搜索命令是由哪个包提供的
yum provides ssh

软件包组

yum grouplist     包组名 # 查看包组
yum groupinstall "包组"  # 必须带引号,成为一个整体,安装完毕之后编程Installed 

# 在安装过程中,其他客户端无法使用yum,因为yum被占用

yum groupinfo            # 获取包的信息,查看包组有哪些包组成 
yum groupupdate '包组'   # 更新
yum groupremove          # 卸载包组
 
# Development Tools   开发包组
# GNOME Desktop       桌面
# devel               api包
# docs                帮助信息

yum选项命令

-y # 自动确认
-q # 静默模式
yum -q -y install wget

源码安装

1. wfet 复制链接地址(source release 源)
   wget 地址 安装

2.解压文件 tar xf
3.切换目录 cd
4.查看帮助信息 README INSTALL 文件
5.yum install zlib2-devel  openssl-devel # 安装所需文件
6./configure --prefix=/opt/python3.6   # 编译(检查程序所需的文件) 
7.make                                 # 构建安装程序 make
8.make install                         # 安装程序

[root@localhost Python-3.6.9]#cd /opt/python3.6/
[root@localhost python3.6]#ll
total 4
drwxr-xr-x. 2 root root 4096 Aug 28 21:08 bin
drwxr-xr-x. 3 root root   24 Aug 28 21:08 include
drwxr-xr-x. 4 root root   63 Aug 28 21:08 lib
drwxr-xr-x. 3 root root   17 Aug 28 21:08 share

9.vim /etc/profile.d/python.sh
    # 在文件下写
  PATH=/opt/python36/bin:$PATH# 配置环境变量
  在外面重新读取
  source /etc/profile.d/python.sh
  

以上是关于linux之用户,用户组,软件操作的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令学习笔记之三用户和用户组操作

linux自学之vmware虚拟机安装

Linux之操作系统用户和组的概念

linux用户态与内核态

Linux之用户管理与权限控制(上)

软件包管理之RPM