首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
函数参数与返回值
传递变长参数
defer 和追踪
内置函数
递归函数
将函数作为参数
闭包
应用闭包:将函数作为返回值
使用闭包调试
计算函数执行时间
通过内存缓存来提升性能
声明和初始化
切片
For-range 结构
切片重组(reslice)
切片的复制与追加
字符串、数组和切片的应用
声明、初始化和 make
测试键值对是否存在及删除元素
for-range 的配套用法
map 类型的切片
map 的排序
将 map 的键值对调
标准库概述
regexp 包
锁和 sync 包
精密计算和 big 包
自定义包和可见性
为自定义包使用 godoc
使用 go install 安装自定义包
自定义包的目录结构、go install 和 go test
通过 Git 打包和安装
Go 的外部包和项目
在 Go 程序中使用外部库
结构体定义
使用工厂方法创建结构体实例
使用自定义包中的结构体
带标签的结构体
匿名字段和内嵌结构体
方法
类型的 String() 方法和格式化描述符
垃圾回收和 SetFinalizer
当前位置:
首页>>
技术小册>>
go编程权威指南(二)
小册名称:go编程权威指南(二)
上小节介绍了 Linux 系统中的用户,本小节介绍如何添加 Linux 普通用户,添加完普通用户后可以在当前登录进程切换登录用户。 1\. useradd 命令 -------------- 若想要添加 Linux 系统普通用户,可以使用 `useradd` 命令,使用 `root` 账号登录 Linux 系统之后就可以添加系统普通用户了。 ### 1.1 useradd 命令参数介绍 下面列举了一些 `useradd` 命令参数作用: | useradd 命令参数名称 | 功能与作用描述 | | :-- | :-- | | \-b | 表示 `--base-dir`,新用户主目录的基目录 | | \-c | 表示 `--comment`,给新用户添加备注 | | \-d | 表示 `--home-dir`, 新账户的家目录 | | \-D | 表示 `--defaults`,显示或更改默认的 useradd 配置 | | \-e | 表示 `--expiredate`,用 YYYYY-MM-DD 格式指定一个账户过期的日期 | | \-f | 表示 `--inactive_days`,指定这个帐户密码过期后多少天这个账户被禁用,0表示密码一过期就立即禁用,-1表示禁用这个功能 | | \-g | 表示 `--gid GROUP`,指定用户登录组的GID或组名 | | \-G | 表示 `--groups`,指定用户除登录组之外所属的一个或多个附加组 | | \-k | 表示 `--skel`,使用此目录作为骨架目录 | | \-K | 表示 `--key`,不使用 /etc/login.defs 中的默认值 | | \-l | 表示 `--no-log-init`,不要将此用户添加到最近登录和登录失败数据库 | | \-m | 表示 `--create-home`,创建用户的家目录 | | \-M | 表示 `--no-create-home`,不创建用户的家目录(当默认设置里指定创建时,才用到) | | \-N | 表示 `--no-user-group`,不创建同名的组 | | \-o | 表示 `--non-unique`,允许使用重复的 UID 创建用户 | | \-p | 表示 `--password`,为用户账户指定默认密码 | | \-r | 表示 `--system`,创建一个系统账户 | | \-s | 表示 `--shell`,shell 指定默认登录 shell | | \-u | 表示 `--uid`,为账户指定一个唯一的 UID | | \-U | 表示 `--user-group`,创建与用户同名的组 | | \-Z | 表示 `--selinux-user`,为 SELinux 用户映射使用指定名字 | 若使用 `useradd` 命令不指定参数,则新添的用户默认参数如下: * 新用户 GID 默认为 100; * 新用户的家目录位于 `/home/用户名`; * 新用户密码过期后不会被禁用; * 新用户账户没有被设置过期日期; * 新用户将 `bash shell` 作为默认 `shell`。 ### 1.2 添加用户 可以使用 `useradd` 命令新增 Linux 系统普通用户,命令如下: useradd hellokitty 查看/etc/passwd文件,查看新加的用户: tac /etc/passwd # tac命令是把cat命令返回过来用,显示文件从下到上反过来排序显示 如上所示是 `/etc/passwd` 文件中展示的用户信息,下面查看 `/etc/shadow` 文件中记录的用户信息,命令如下: tac /etc/shadow 2\. passwd 命令设置用户密码 ------------------- 可以使用 `passwd` 命令给上述 `hellokitty` 用户设置用户密码,命令如下: passwd hellokitty 3\. 切换当前登录用户 ------------ 若想要从当前登录用户直接切换到另外一个用户,可以使用 `su` 命令,以切换到 `hellokitty` 用户为例,命令如下: su hellokitty 4\. sudo 命令介绍 ------------- `sudo` 是 Linux 系统管理指令,是允许系统管理员让普通用户执行一些或者全部的 root 命令的一个工具,如 halt,reboot,su 等等。这样不仅减少了 root 用户的登录和管理时间,同样也提高了安全性。sudo 不是对 shell 的一个代替,它是面向每个命令的。下面演示一个普通用户执行 `root` 权限的过程,过程命令下: cat /etc/shadow # 使用普通用户直接查看 /etc/shadow 会提示权限不够 sudo cat /etc/shadow # 使用 sudo 执行 root 权限 su root # 切换 root 用户 > **Tips**:之前提到过 `/etc/shadow` 只有 `root` 权限才能访问。 可以在 `/etc/sudoers` 文件中给设置 `hellokitty` 用户的 `sudo` 权限,首先使用 Vim 打开 /etc/sudoers 文件,命令如下: vim /etc/sudoers **给普通用户配置sudo权限:** 添加一条: ```bash hellokitty ALL=(ALL:ALL) ALL ``` 保存退出之后,切换至 `hellokitty` 用户,重新执行之前查看 `/etc/shadow` 文件的过程,命令如下: su hellokitty cat /etc/shadow sudo cat /etc/shadow 5\. 小结 ------ 本小节介绍了如何添加 Linux 系统用户,还介绍了如何切换当前登录用户,`root 用户` 可以通过修改 `/etc/sudoers` 文件赋予普通用户指定的 `root 权限`,普通用户有了 `sudo` 权限之后,可以在命令前面加上 `sudo` 执行 `root 权限`,需要注意的是本小节介绍的 `/etc/sudoers` 文件中设置的 `hellokitty` 用户 `sudo 权限` 为 `ALL`,可以指定特定的权限。
上一篇:
Linux用户介绍
下一篇:
Linux删除用户
该分类下的相关小册推荐:
WebRTC音视频开发实战
深入浅出Go语言核心编程(七)
Go开发权威指南(上)
从零写一个基于go语言的Web框架
深入浅出Go语言核心编程(八)
Go-Web编程实战
Go语言从入门到实战
Go Web编程(中)
企业级Go应用开发从零开始
Go进阶之分布式爬虫实战
深入浅出Go语言核心编程(四)
GO面试指南