Subject: Re: bug#36169: Why does parted change ownerships of devices?

From: "Brian C. Lane" <[email-masked]>
Date: Wed, 12 Jun 2019 11:32:31 -0700

On Tue, Jun 11, 2019 at 11:23:47AM +0200, Guillaume Abrioux wrote:
> Hello,
> 
> We use parted in ceph-ansible playbook [1] to retrieve some devices
> information, the parted ansible module runs a parted/print command [2], but
> we are facing an issue where ownerships get modified after that.
> 
> Doing the test manually without ansible context shows it's parted itself
> which apply this change:
> 
> Before running parted on /dev/sdc:
> [root@osd0 ~]# ls -l /dev/sdc*
> brw-rw----. 1 root disk 8, 32 Jun 11 08:53 /dev/sdc
> brw-rw----. 1 ceph ceph 8, 33 Jun 11 08:53 /dev/sdc1
> brw-rw----. 1 ceph ceph 8, 34 Jun 11 08:53 /dev/sdc2
> 
> Running a basic parted/print:
> [root@osd0 ~]# parted -s /dev/sdc print
> Model: ATA QEMU HARDDISK (scsi)
> Disk /dev/sdc: 53.7GB
> Sector size (logical/physical): 512B/512B
> Partition Table: gpt
> Disk Flags:
> 
> Number  Start   End     Size    File system  Name           Flags
>  1      1049kB  1075MB  1074MB               ceph block.db
>  2      1075MB  2149MB  1074MB               ceph block.db
> 
> We can see ownerships have changed from ceph:ceph to root:disk:
> [root@osd0 ~]# ls -l /dev/sdc*
> brw-rw----. 1 root disk 8, 32 Jun 11 08:57 /dev/sdc
> brw-rw----. 1 root disk 8, 33 Jun 11 08:57 /dev/sdc1
> brw-rw----. 1 root disk 8, 34 Jun 11 08:57 /dev/sdc2
> [root@osd0 ~]#
> 
> I'm wondering whether there's a good reason for this or should it be
> considered as a bug?

How did you set the ownership of the partition devices in the first place?
You can't just manually set the ownership and permissions of device
nodes, you need to use udev (which is responsible for creating them) to
do that.

parted tells the kernel to rescan the partitions, so the device entries
are probably being recreated by udev, changing their ownership back to
whatever udev thinks they should be.

-- 
Brian C. Lane (PST8PDT) - weldr.io - lorax - parted