简体   繁体   中英

Linux user access and mount

In my embedded system I mound a uSD card in /mnt which is a folder residing on a NAND flash. A problem arises in the cases where uSD card fails to mount (missing or HW error).

Copying files to /mnt will in this case fill up the nand flash which has limited size. My first idea was to just restrict the access to the /mnt folder so that when it fails to mount no write is allowed. As a test scenario I did (as root user) mkdir /test chmod 000 /test

d--------- 2 root root 160 Jan 3 10:58 test /#

From a Ubuntu PC I then tries a to copy a file using scp scp myFile root@192.168.1.100:/test

The idea was that as long as this directory had now acces rights this copy should be denied. This is not the case, the file is myFile is copied to folder /test

Why is this so? My idea was as long as I revoked all access to this folder copying files would be rejected.

Where am I going wrong here?

root (or any user with uid 0 [zero] for that matter) is able to read and write to any file regardless of permission and ownership.

You might want to try out the immutable flag on that directory, though:

~# mkdir test
~# chmod 0000 test
~# touch test/foo      # no error here

~# chattr +i test
~# touch test/foo2
touch: cannot touch 'test/foo2': Permission denied

Why does mnt reside on a nand flash ? You an also put it in a tmpfs file system, and limit the size of the tmpfs file system, using the size options

mkdir /media
mount -t tmpfs tmpfs -o size=4M /media
mkdir /media/mmc

Mount whatever you want in /media/mmc

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM