【linlong】Linux创建用户账号并给予对应权限

目录

一 .创建账号

二.分配权限

2.1 修改文件分配

2.2 使用指令分配

三.查看权限

一 .创建账号

在 Linux 中,可以使用以下步骤创建用户账号并为其分配相关权限:

  1. 以root用户或具有管理员权限的用户身份登录到系统。

  2. 创建新用户账号,使用 useradd 命令,例如:

    sudo useradd -m myuser
    

    这个命令会创建一个名为 myuser 的新用户账号,并在家目录下创建对应的用户目录。

  3. 设置用户账号的密码,可以使用 passwd 命令

    sudo passwd myuser
    

    这个指令表示为myuser用户设置密码,输入完指令后回车,会提示让你输入密码/确认密码,然后输入并确认该用户的密码。

二.分配权限

2.1 修改文件快速分配权限

如果您是使用root用户,并且希望为用户"myuser"授予sudo权限,可以按照以下步骤进行:

  1. 以root用户身份登录到系统,打开终端或命令行界面。

  2. 输入以下命令并按Enter键:

    visudo
    

    这将打开sudoers文件进行INSERT编辑。

  3. 找到root ALL=(ALL) ALL在其下面新增一行:

    myuser   ALL=(ALL:ALL)       ALL

    每行的格式为:

    <用户或用户组>    <主机:(用户组)>    <命令>
  4. 如未找到第三步的命令行,那么可以添加以以下格式为用户"wyc"授予sudo权限的行,将其添加到sudoers文件的末尾:

    wyc   ALL=(ALL:ALL) ALL
    
  5. 保存并关闭sudoers文件。

        现在,用户"wyc"应该已经被授予sudo权限,如果想授予其他权限将授权指令进行修改即可。他们可以使用sudo命令以超级用户权限执行命令。请确保只将权限授予可信任的用户,并遵循安全最佳实践。

        请记住,在对sudoers文件进行更改时要非常小心。为了避免出现错误,建议在进行任何更改前备份sudoers文件并确保您有恢复文件的方法。修改完sudoers文件后,关掉并重新打开终端或注销并重新登录,以使更改生效。

2.2 使用指令分配权限

在大多数Linux发行版中,sudo命令的权限通常由具有sudo特权的用户来使用。要为用户授予sudo权限,您可以执行以下步骤:

  1. 以root用户或具有管理员权限的用户身份登录到系统。

  2. 使用以下命令为用户创建一个名为sudo的群组(如果该群组不存在):

    sudo groupadd sudo
    
  3. 使用以下命令将用户添加到sudo群组中:

    sudo usermod -aG sudo 用户名
    

    注意,将"用户名"替换为您要授予sudo权限的实际用户账号名称。

  4. 完成以上步骤后,用户将被添加到sudo群组中,并且应该具有sudo权限。请注意,在某些Linux发行版中,sudo群组可能被称为其他名称,如"wheel"或"admin"。在这种情况下,请相应地修改命令中的群组名称。

  5. 如果还没有权限,那么需要确保你是否是一个新的权限组,如果是那么需要为该权限组赋予权限

        这样,您就创建了一个新的用户账号,并为其分配了相关权限。请根据具体需求和安全性考虑来进行权限分配,确保仅提供必要的权限。

三.查看权限

要查看您是否拥有权限变更的能力,您可以执行以下步骤:

  1. 打开终端或命令行界面。

  2. 输入以下命令并按Enter键:

    sudo -l
    

    这将提示您输入密码。

  3. 输入您的密码并按Enter键。

  4. 如果您拥有权限变更的能力,系统将显示您可以执行的命令列表。

    如果您没有权限变更的能力,系统将显示一条消息,指示您没有权限执行任何命令。

    User myuser may run the following commands on VM-0-12-centos:
       (ALL : ALL) ALL

提示这个说明您已经具有配置的所有权限!

请注意,执行sudo -l命令需要您已经具有sudo权限。如果您没有sudo权限,您将无法查看权限变更的能力。

至此,我们就完成了Linux创建账号,并给予用户权限.

 下期见!

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
/* * @Author: LinLong * @LastEditors: LinLong * @Description: 上课进度上传 */ import { ref, onMounted, onUnmounted } from 'vue' import { getItem, setItem } from '@/hooks' import { uselearningProgress } from '@/stores' import { updatedLearningProgress } from '@/apiList/learningProgress' const learningProgressStore = uselearningProgress() //学习进度仓库 const currentProgressFile = ref(null) //当前学习进度文件 const heartbeatTime = 30 * 1000 //30秒 let timer = null //时间函数 export function useClassProgress(onBeforeRouteLeave) { //从仓库获取用户点击的课程->项目->任务->文件 learningProgressStore.$subscribe((mutation, state) => { const { currentProgress } = state // console.log('%c--currentProgress-->', 'background:#18C36E;color:#3F4040;', currentProgress) currentProgressFile.value = { classId: currentProgress.classId, courseId: currentProgress.courseId, courseId_text: currentProgress.courseId_text, projectId: currentProgress.pid == 0 ? currentProgress.id : currentProgress.pid, // projectId: currentProgress.id, taskId: currentProgress.pid == 0 ? null : currentProgress.id, pid_text: currentProgress.pid_text, name: currentProgress.name, file: currentProgress.url, userId: getItem('userInfo').id, } // console.log('%c-----state 学习进度------->', 'background:#18C36E;color:#3F4040;', currentProgress) }) //生命周期页面挂载完毕 onMounted(() => { //接收iframe 异步框架消息 window.addEventListener('message', (e) => { if (e.origin.includes('8013')) { const data = e.data setItem('postMessage', data) // console.log('%c-----监听postMessage子级------->', 'background:#18C36E;color:#3F4040;', JSON.parse(data)) } }) //浏览器tab标签切换或最小化事件设置暂停提交 上课记录 document.addEventListener('visibilitychange', () => { if (document.visibilityState === 'hidden') { timer ? clearTimeout(timer) : (timer = null) //清除定时器 } else if (document.visibilityState === 'visible') { timer ? clearTimeout(timer) : (timer = null) //先清除一次定时器 sendMessage() //继续发送学习进度 } }) //发送统计信息至后端 sendMessage() function sendMessage() { console.log('%c---对方水电费水电费水电费->', 'background:#18C36E;color:#3F4040;') timer ? clearTimeout(timer) : (timer = false) //先清除一次定时器 timer = setTimeout(() => { const sendData = { ...getItem('postMessage'), ...currentProgressFile.value, } // console.log('%c------准备发送的信息sendData------>', 'background:#18C36E;color:#3F4040;', sendData) updatedLearningProgress(sendData).then((res) => { if (res.success) sendMessage() }) }, heartbeatTime) //heartbeatTime } }) //生命周期页面销毁之前 onUnmounted(() => { clearTimeout(timer) // //路由离开 // onBeforeRouteLeave(() => { // clearTimeout(timer) // }) }) }
04-20

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java程序猿张某人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值