创建新用户
useradd 用户名
例如:useradd linen
给新用户添加密码
passwd linen

给新用户添加主目录
该方法适用于已经创建了新用户但没有指定主目录的情况
1-如果主目录不存在则创建主目录
mkdir 主目录地址
2-给新用户添加主目录
chown linen -R /home/linen/
3-确认主目录添加成功
grep linen /etc/passwd
如果出现
linen:x:1001:1001::/home/linen:/bin/sh
说明主目录添加成功
4-给用户添加sudo权限
第一种方法:
adduser newuser sudo
例如 adduser linen sudo
返回值:
Adding user `linen' to group `sudo' ...
Adding user linen to group sudo
Done.
表示添加成功
第二种方法:
打开 etc/sudoers文件,添加以下内容即可
newuser ALL=(ALL) ALL
给新用户添加tap补全功能
useradd创建的新用户默认无法使用tap补全功能,原因是默认使用sh而非bash shell
解决方案:使用root权限执行以下命令
sudo chsh -s /bin/bash 新用户名
例如:
sudo chsh -s /bin/bash linen
执行完成后,新用户可以使用tap自动补全功能
使用Python识别USB的问题
Traceback (most recent call last):
File "main.py", line 5, in <module>
pm.doMonitor()
File "/home/liuyahui/1-space/1_WORK_SPACE/1-document/1.工具/3-读取powermontor数据/3-demo/pminterface/powermointor.py", line 103, in doMonitor
self.start(self.monsoon)
File "/home/liuyahui/1-space/1_WORK_SPACE/1-document/1.工具/3-读取powermontor数据/3-demo/pminterface/powermointor.py", line 40, in start
device.setup_usb()
File "/home/liuyahui/.local/lib/python3.8/site-packages/Monsoon/HVPM.py", line 39, in setup_usb
Protocol.Connect(op.HardwareModel.HVPM,serialno)
File "/home/liuyahui/.local/lib/python3.8/site-packages/Monsoon/pmapi.py", line 52, in Connect
connectedDeviceType = self.getValue(op.OpCodes.HardwareModel,2)
File "/home/liuyahui/.local/lib/python3.8/site-packages/Monsoon/pmapi.py", line 128, in getValue
result = self.DEVICE.ctrl_transfer(op.Control_Codes.USB_IN_PACKET,op.Control_Codes.USB_SET_VALUE,0,wIndex,4,5000)
File "/home/liuyahui/.local/lib/python3.8/site-packages/usb/core.py", line 1071, in ctrl_transfer
self._ctx.managed_open()
File "/home/liuyahui/.local/lib/python3.8/site-packages/usb/core.py", line 113, in wrapper
return f(self, *args, **kwargs)
File "/home/liuyahui/.local/lib/python3.8/site-packages/usb/core.py", line 131, in managed_open
self.handle = self.backend.open_device(self.dev)
File "/home/liuyahui/.local/lib/python3.8/site-packages/usb/backend/libusb1.py", line 804, in open_device
return _DeviceHandle(dev)
File "/home/liuyahui/.local/lib/python3.8/site-packages/usb/backend/libusb1.py", line 652, in __init__
_check(_lib.libusb_open(self.devid, byref(self.handle)))
File "/home/liuyahui/.local/lib/python3.8/site-packages/usb/backend/libusb1.py", line 604, in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 13] Access denied (insufficient permissions)
主要问题是usb.core.USBError: [Errno 13] Access denied (insufficient permissions),看起来是权限问题。
查询技术论坛https://stackoverflow.com/questions/50625363/usberror-errno-13-access-denied-insufficient-permissions
原因是缺少了对设备的权限设置,解决方案:
1.创建管理设备权限的文件
50-myusb.rules

添加权限规则
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2ab9", ATTRS{idProduct}=="0001" GROUP="users", MODE="0666"
使用lsusb命令确认idVendor和idProduct,比如我需要的是Monsoon这台设备,idVendor是2ab9,idProduct是0001
#
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 046d:c092 Logitech, Inc. G102 LIGHTSYNC Gaming Mouse
Bus 001 Device 013: ID 2ab9:0001 Monsoon Solutions Inc. Mobile Device Power Monitor
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
保存50-myusb.rules文件后刷新
sudo udevadm control --reload-rules && sudo udevadm trigger
再次调用usb设备就不会报错了
ubuntu 终端使用ctrl+R显示多条历史命令的工具
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
22万+





