首页 > 系统相关 >玩转linux用户权限

玩转linux用户权限

时间:2023-11-29 18:14:08浏览次数:68  
标签:name 用户组 sudo 用户 echo 玩转 linux 033 权限

玩转linux用户权限

用户

  • 定义: 用户是系统中的一个个体,可以是一个人、一个程序或一个系统服务。每个用户都有一个唯一的用户名(user name)和一个用户 ID(UID),用户 ID 是系统内部用于标识用户的数字。

  • 权限: 每个用户拥有自己的家目录(home directory),其中包含了用户私有的文件和设置。用户还有一套权限,用于决定他们能够访问和执行哪些文件和命令。

创建用户

1 adduser

adduser:会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码

adduser newuser

对应的删除命令为:deluser

2 useradd

useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。

对应的删除命令为:userdel。

3 自动创建用户脚本

#!/bin/bash
#使用 sh add_user_sudo.sh dev dev123456
#创建用户并设置密码
name=$1
pass=$2
group=dev
#echo "you are setting username : ${name}" 
#echo "you are setting password : $pass for ${name}"

#创建用户
useradd -s /bin/bash -m  -g $group $name 
if [ $? -eq 0 ];then
    echo -e "\033[32m用户${name}:创建成功\033[0m"
else
    echo -e "\033[31m用户${name}:创建失败\033[0m"
    exit 1
fi

# 更改组内权限
echo umask 0002 >> /home/$name/.bashrc

echo "$name:$pass" | sudo chpasswd
if [ $? -eq 0 ];then
    echo -e "\033[32m用户${name}:密码设置成功!!!"
else
    echo -e "\033[31m用户${name}:密码密码设置失败\033[0m"
fi

#追加用户至sudoers
echo "$name    ALL=(ALL:ALL) ALL" >> /etc/sudoers


names="cat /etc/sudoers | grep -w $name| wc -l"
if [ $names -eq 0 ];then
    echo -e "\033[31m用户$name:sudoers修改失败,请检验\033[0m"
else
    echo -e "\033[32m用户$name:sudoers修改成功\033[0m"
fi

# 添加docker 使用权限
usermod -aG docker $name
if [ $names -eq 0 ];then
    echo -e "\033[31m用户$name:添加docker失败,请检验\033[0m"
else
    echo -e "\033[32m用户$name:添加docker成功\033[0m"
fi

# 为用户设置/bin/bash为默认
chsh -s /bin/bash $name
echo -e "\033[33m所创建账号为:$1 \033[0m"
echo -e "\033[33m所创建账号密码为:$2 \033[0m"


sh add_user_sudo.sh dev dev123456

删除用户

sudo userdel tt

sudo userdel -r tt # 连同用户主目录一起删除,如果创建时主目录已经存在则不能删除

用户组

用户组(User Group):

  • 定义: 用户组是用户的集合,它允许在一个组中汇总多个用户,并为这个组分配一些共同的权限。每个用户可以属于一个或多个用户组。每个用户组有一个唯一的组名(group name)和一个组 ID(GID),组 ID 是系统内部用于标识用户组的数字。
  • 权限: 当用户属于一个用户组时,他们可以继承该用户组的权限,这对于简化权限管理非常有用。例如,如果一个用户组具有对某个目录的写权限,属于该组的所有用户都具有对该目录的写权限。

查看用户组数

groups

cat /etc/group #查看用户组列表 
# 括组名、组密码(通常是 "x" 表示密码存储在 /etc/gshadow 文件中)、组 ID(GID)以及属于该组的用户列表
sudo addgroup group_name # 创建新的用户组
sudo adduser username group_name # 创建用户并将其添加到用户组:
sudo usermod -aG group_name username # 对已经次创建用户实现
sudo delgroup group_name #  删除用户组
groups username # 查看用户所属的用户组

文件权限

sudo chown new_owner:new_group file_path #  更改文件所有者和所属用户组
# 将 new_owner 替换为新的所有者用户名,将 new_group 替换为新的用户组名,将 file_path 替换为要更改权限的文件路径。

sudo chgrp new_group file_path # 更改文件所属用户组
sudo chmod permissions file_path # 将 permissions 替换为新的权限设置,将 file_path 替换为要更改权限的文件路径。权限可以使用数字(例如,755)或符号(例如,u+rwx,g+rx,o+r)表示。

例如,将文件 example.txt 的所有者更改为 john,所属用户组更改为 staff,并将权限设置为 rw-r--r--,可以执行以下命令:
sudo chown john:staff example.txt
sudo chmod 644 example.txt

标签:name,用户组,sudo,用户,echo,玩转,linux,033,权限
From: https://www.cnblogs.com/renoyuan/p/17865523.html

相关文章

  • Android踩坑小记-在onResume中申请权限
    Android踩坑小记-在onResume中申请权限最近遇见一个问题,在onResume中申请权限,比如申请定位权限,如下所示:@OverrideprotectedvoidonResume(){super.onResume();requestPermission();}@TargetApi(Build.VERSION_CODES.M)privatevoidr......
  • linux常用命令
    linux常用命令1.文件目录介绍目录说明/bin是Binary的缩写,这个目录存放着经常使用的命令/sbins就是SuperUser的意思,这里存放的是系统管理员使用的系统管理程序/home存放着普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录是以用户的账户号命名的/root该目录为系统管......
  • linux安装MAT(MemoryAnalyzerTool)工具
    下载地址:EclipseMemoryAnalyzerOpenSourceProject|TheEclipseFoundation注意:1.12.0Release需要JDK11参数配置在配置的部分,我们主要配置的是ParseHeapDump.sh脚本中的内存参数。在脚本的最后一行的最后面,加上如下的参数-vmargs-Xmx30g-XX:-UseGCOverhea......
  • Linux学习记录
    工作几年,发现原来的工作并不适合自己,遂决定不破不立,毅然离职。离职的这几个月一直在寻找方向。但发现今年(23年)的行情比疫情期间还差。很多工作没有经验根本转不了。经过几个月的摸索探索。在各大平台查找。最终决定学习Linux。大佬们勿喷,本文权当学习日记了,好了,开始。231129现在......
  • linux文件管理-1
    Linux操作系统的目录结构常见目录及说明/bin(/usr/bin、/usr/local/bin)是Binary的缩写,这个目录存放着最经常使用的命令/home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。/root 该目录为系统管理员,也称作超级权限者......
  • Linux中kill %n命令是干啥的?
    在Linux或Unix下,如果你看见别人使用kill%1或者kill%n(n为一个具体的数字)命令,你知道kill%n这种带%号的用法是干嘛吗?其实kill%n表示kill掉后台程序(也可以说是作业),其中n表示Job的编号(number),而不是进程的进程号,下面我们来简单演示一下$ more initkerry.ora在没有完全......
  • linux文件管理-2
    vi和vim的基本介绍Linux系统会内置vi文本编辑器Vim可以看作是Vi的增强版本,Vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富。vi和vim常用的三种模式1.正常模式:以vim打开一个档案就直接......
  • Linux磁盘管理
    1.磁盘分区:2.磁盘分区是将硬盘划分为不同的逻辑部分,每个部分称为分区。分区可以用于组织数据、提高文件系统性能,以及隔离系统和用户数据。3.常见的分区工具包括fdisk、parted和gparted。这些工具允许你创建、删除、调整和显示分区。4.文件系统:5.文件系统是一种组织和存储数......
  • Linux关于vim的一些操作指令
    1.模式:2.Vim具有多种工作模式,最基本的有两种:命令模式和插入模式。3.在命令模式下,键盘输入被解释为命令,例如移动光标、删除文本等。4.在插入模式下,键盘输入直接插入到文本中。5.基本操作:6.进入插入模式:按下i键。7.保存文件:在命令模式下输入:w。8.退出Vim:在命令模式下输入:q。9......
  • Linux文件权限
    1.查看文件权限:使用ls-l命令可以列出文件和目录的详细信息,包括权限、所有者、用户组等。权限字段包含了文件的读(r)、写(w)、执行(x)权限。$ls-lfilename2.修改文件权限:3.chmod:该命令用于修改文件权限。#例如,给文件所有者增加写权限$chmodu+wfilename4.使用数字表示权限:r......