On Thu, Dec 24, 2020, 8:08 AM Greg Wooledge <wool...@eeg.ccf.org> wrote:

> On Thu, Dec 24, 2020 at 12:49:30PM +0800, zhang yang wrote:
> > IP_ dynaddr
> > To modify and save the prompt: "IP"_ dynaddr" E212: Can't open file for
> > writing“.
> > So I used Chmod 777 ip_ dynaddr authority, display error: Chmod: changing
> > permissions of 'IP_ dynaddr': Operation not permitted.
> > I use chaddr - i ip_dynaddr command to removes attributes and displays an
> > error: chattr: Inappropriate ioctl for device while reading flags on
> > ip_dynaddr.  How to set dynaddr?
>
> For the benefit of others, the file in question is
>
> /proc/sys/net/ipv4/ip_dynaddr
>
> /proc is not a regular file system.  It's an interface to pieces of the
> kernel.  Some of these pieces can be read by everyone.  Almost none of
> them can be *written* by everyone -- you usually have to be root to
> write to them.
>
> chmod 777 is almost always a *huge* mistake.  If the permissions on a
> file are stopping you from doing someting, there's usually a reason
> for that.  Destroying the permissions on the file is not the right answer.
> Elevating yourself to a higher power level is.
>
> Now, the next thing you'll want to know is that while root can probably
> write to this file, it can't necessary *edit* the file with a text
> editor.  You're expected to use a much lower level of access to open
> the file, write to it, and close it.  Typically that's done with
>
> echo something > /proc/whatever
>
> Of course this redirection means that it's your shell who needs
> privileges to open the file for writing.  If you try it as your
> regular user, you'll encounter the "permission denied" error that
> you already saw.
>
> The expected course of action is for you to do it from a root shell,
> which you obtain by using su or sudo.
>
> $ su
> Password:
> # echo something > /proc/whatever
> # exit
> $
>
> If you're not a fan of su, or if you're one of those people who has
> decided not to have a root password (a bad idea!), then you can get
> a root shell with sudo -s:
>
> $ sudo -s
> # echo something >/proc/whatever
> # exit
> $
>
> (sudo may prompt you for your password if you haven't used sudo in that
> terminal in the last few minutes.)
>
> Some people will try to be clever and do this:
>
> sudo echo something > /proc/whatever
>
> That will not work, for the reasons explained at
> <https://mywiki.wooledge.org/BashPitfalls#pf53>.


+10

That is an Awesome page you have there, Greg!  I have Bookmarked it.

>

You may use one of
> the quoted forms on that page if you prefer.  But the original design
> of the files in /proc was for users with a root shell to perform shell
> redirections.  Not for sudo.
>
> Also, while I'm here talking about su, bear in mind that Debian decided
> to become more like Red Hat and replaced their version of su with the
> one used by Red Hat, and didn't bother configuring it to maintain backward
> compatibility with the previous version.  See
> <https://wiki.debian.org/NewInBuster#Changes> for workarounds...
>

Also good.  I was never affected by the change, because I always use "su
-".

Kenneth Parker

>

Reply via email to