该命令id可用于查找用户的uid,例如:
$ id -u ubuntu
1000
Run Code Online (Sandbox Code Playgroud)
是否有命令可以从 a 中查找用户名uid?我意识到这可以通过查看/etc/passwd文件来完成,但我问是否有一个现有的命令,特别是如果执行它的用户不是 root。
我不是在寻找当前用户的用户名,即我不是在寻找whoami或logname。
这也让我想知道在共享网络托管上这是否是一项安全功能,还是我只是没有正确理解某些内容?
为了检查,/etc/passwd来自共享网络主机的文件:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
xfs:x:43:43:X Font …Run Code Online (Sandbox Code Playgroud) 在当前的 Linux 发行版(如 Debian/CentOS/Fedora)下,在 USB 设备插件上自动执行自定义脚本的最先进方法是什么?
例如,如果您想根据 UUID(或设备 ID 等)自动挂载/复制某些文件/卸载 USB 大容量存储设备。
我在 VMware 中有一个 Fedora 来宾操作系统。我想扩展/boot分区,所以我向这个虚拟机添加了另一个虚拟磁盘,并尝试克隆该磁盘。
之后dd if=/dev/sda1 of=/dev/sdb1,blkid报告/dev/sda1和/dev/sdb1具有相同的 UUID/GUID。
奇怪的是,宇宙中有2个相同的UUID,如何将其中一个更改为另一个UUID值?
主题改变了,这里的 UUID 是指文件系统 UUID,而不是分区 UUID。
由于它是文件系统 UUID,因此需要特定于文件系统的实用程序来更改 UUID,或使用 hexeditor 修改磁盘上的原始数据(危险,除非您知道自己在做什么,否则不推荐)。
我的系统在我的 GRUB 2 配置中启动正常:
linux /bzImage root=/dev/sda2 init=/usr/lib/systemd/systemd ro
Run Code Online (Sandbox Code Playgroud)
但是如果我/dev/sda2用相应的 UUID替换:
linux /bzImage root=UUID=666c2eee-193d-42db-a490-4c444342bd4e init=/usr/lib/systemd/systemd ro
Run Code Online (Sandbox Code Playgroud)
然后在启动过程中失败:
kernel panic - not syncing: VFS: unable to mount root fs on unknown-block(0,0)
Run Code Online (Sandbox Code Playgroud)
UUID 似乎是正确的:
# blkid
/dev/sda1: UUID="97ac3744-39de-4d6d-9a81-e3a3ea08a8bb" TYPE="ext2"
/dev/sda2: UUID="666c2eee-193d-42db-a490-4c444342bd4e" TYPE="ext4"
Run Code Online (Sandbox Code Playgroud)
为什么不起作用?是因为我没有使用 initramfs 吗?
这是内核为 3.10.7 的 x86_64 Gentoo Linux。我正在使用 MBR 分区表sda和 GUID 分区表sdb。
有人可以解释blkid和报告的 UUID 之间的区别mdadm吗?例如,在我们的 CentOS 系统之一上:
[root@server ~]# blkid | grep /dev/md1
/dev/md1: UUID="32cb0a6e-8148-44e9-909d-5b23df045bd1" TYPE="ext4"
[root@server ~]# mdadm --detail /dev/md1 | grep UUID
UUID : f204c558:babf732d:85bd7296:bbfebeea
Run Code Online (Sandbox Code Playgroud)
为什么它们不同,我们将如何更改 使用的 UUID mdadm?
我知道我们会tune2fs用来更改分区的 UUID(这会更改 返回的内容blkid),但不确定如何更改mdadm使用的内容。
我们可以为每台 PC 生成一个唯一的 id,比如 uuuidgen,但除非硬件发生变化,否则它永远不会改变?我正在考虑合并 CPUID 和 MACADDR 并将它们散列以生成一致的 ID,但我不知道如何使用 bash 脚本解析它们,我知道如何从中获取 CPUID
dmidecode -t 4 | grep ID
Run Code Online (Sandbox Code Playgroud)
和
ifconfig | grep ether
Run Code Online (Sandbox Code Playgroud)
然后我需要组合这些十六进制字符串并使用 sha1 或 md5 对它们进行散列以创建固定长度的十六进制字符串。
我该如何解析该输出?
我有一个未收到 UUID 的 USB 驱动器。当我查看 /dev/disk/by-uuid 的内容时,它不存在。分区所在的开发点位于 /dev/sdb 上。我可以在 /dev/disk/by-path 下看到 sdb。此外,当使用 blkid 时,我的输出为零。我假设我收到了返回的错误代码。
有没有办法获得这个分区的 UUID?
的结果 fdisk -l /dev/sdb:
Disk /dev/sdb: 320.1 GB, 320072932352 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142446 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00082145
Device Boot Start End Blocks Id System
/dev/sdb1 2048 625141759 312569856 83 Linux
Run Code Online (Sandbox Code Playgroud)
分区表和分区是用gparted创建的,所以它被分区并运行命令mkfs.ext3。
fsck -n …
我已经使用 Clonezilla 备份了我的 BTRFS 文件系统,并将其中一个备份恢复到名为2013-11-29.sda3.img.
我需要从这个备份中取出一些文件,但是出了点问题。由于备份是这台机器的,我不能在我的文件系统的任何地方挂载备份,因为它的 UUID 与/.
有没有办法可以更改备份卷的 UUID?据我了解,BTRFS 将 UUID 信息存储在文件系统的每个块中,这使我的目的变得复杂。但是,有没有办法可以修改它?我知道这可能需要很长时间才能完成,但这与我无关。我主要关心的是保持服务器在线。备份相当大,因此将其转移到另一台机器需要很长时间。
我有哪些选择?
我正在设置突袭。sda在安装过程中使用,我刚才复制的分区表sda来sdb像这样:
$ sudo sfdisk -dL /dev/sda > partition_table_sda
$ sudo sfdisk /dev/sdb < partition_table_sda
Run Code Online (Sandbox Code Playgroud)
但是我注意到sda交换空间有一个 uuid,但sdb没有:
$ sudo blkid
/dev/sda5: UUID="vvvvvvvv-wwww-xxxx-yyyy-zzzzzzzzzzzz" TYPE="swap"
/dev/sda1: UUID="vvvvvvvv-wwww-xxxx-yyyy-zzzzzzzzzzzz" TYPE="ext4"
/dev/sdb1: UUID="vvvvvvvv-wwww-xxxx-yyyy-zzzzzzzzzzzz" TYPE="ext4"
Run Code Online (Sandbox Code Playgroud)
分区看起来是正确的,只是缺少 uuid:
$ sudo fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): …Run Code Online (Sandbox Code Playgroud) 我想创建随机唯一编号(UUID)如下
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
Run Code Online (Sandbox Code Playgroud)
首先我试过这个
$ rndnum=` echo $RANDOM"-"echo $RANDOM"-"echo $RANDOM"-"echo $RANDOM"-"echo $RANDOM`
$ echo $rndnum
30380-echo 21875-echo 14791-echo 32193-echo 11503
Run Code Online (Sandbox Code Playgroud)
创建以下内容的正确方法f是什么(任何数字在哪里)?
ffffffff-ffff-ffff-ffff-ffffffffffff
Run Code Online (Sandbox Code Playgroud)